https://github.com/jedrzejginter/ts-resolve-type
🖌️ Get fully resolved TypeScript type as code
https://github.com/jedrzejginter/ts-resolve-type
types typescript typescript-compiler-api
Last synced: about 1 year ago
JSON representation
🖌️ Get fully resolved TypeScript type as code
- Host: GitHub
- URL: https://github.com/jedrzejginter/ts-resolve-type
- Owner: jedrzejginter
- License: mit
- Created: 2023-11-29T09:20:09.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2023-11-29T19:15:22.000Z (over 2 years ago)
- Last Synced: 2025-03-11T15:45:16.800Z (over 1 year ago)
- Topics: types, typescript, typescript-compiler-api
- Language: TypeScript
- Homepage:
- Size: 20.5 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
- License: license
Awesome Lists containing this project
README
# ts-resolve-type
## Requirements
- Node 16 or higher
- TypeScript 5 or higher
- `strict: true` in `tsconfig.json`
## Known limitations
- The type has to be `export`'ed
- Most probably it's because TypeScript checker ignores types that are not used (??)
- Does not resolve `enum`
- Does not preserve function argument names
- Prints `args_0`, `args_1` etc instead of original function arguments names
## Installation
```console
npm i -D ts-resolve-type typescript
```
## Usage
```ts
// src/index.ts
type Keys = 1 | 2 | 3;
export type InputType = {
[K in Keys]: number;
};
```
### CLI
Find `InputType` in `src/index.ts` file and get the output type:
```console
npx ts-resolve-type src/index.ts InputType
```
Outputs
```ts
type InputType = {
1: number;
2: number;
3: number;
};
```
### Node.js
```ts
import { resolve } from "ts-resolve-type";
const resolved = await resolve("./src/index.ts", "InputType");
/*
const resolved = `type InputType = {
1: number;
2: number;
3: number;
};`
*/
```