An open API service indexing awesome lists of open source software.

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

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;
};`
*/
```