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

https://github.com/skarab42/unleashed-typescript

TypeScript with exposed internal definitions and some private methods for type checking.
https://github.com/skarab42/unleashed-typescript

internal tssert type-check type-checker types typescript unleashed

Last synced: 6 months ago
JSON representation

TypeScript with exposed internal definitions and some private methods for type checking.

Awesome Lists containing this project

README

          

# unleashed-typescript

TypeScript with exposed internal definitions and some private methods for type checking.

## How does it work?

When you install the package, it will look for your local version of TypeScript. It will then make a copy of your version in its own location, apply the patches and re-export the patched version. Then you can import the patched version and enjoy your unleashed version of TypeScript while keeping your original version intact.

## What does it add/remove?

1. Removes all `@internal` tags which allows you to access internal types, classes, properties and methods with their declarations.

2. Export some very useful private methods from the `TypeChecker`:

```ts
function isTypeSubtypeOf(source: Type, target: Type): boolean;
function isTypeIdenticalTo(source: Type, target: Type): boolean;
function isTypeDerivedFrom(source: Type, target: Type): boolean;
function isTypeAssignableTo(source: Type, target: Type): boolean;
function isTypeComparableTo(source: Type, target: Type): boolean;
function areTypesComparable(source: Type, target: Type): boolean;
```


And many other things...

```
interface OptionsNameMap;

function getOptionsNameMap(): OptionsNameMap;

interface CommandLineOptionOfCustomType;
interface CommandLineOptionOfStringType;
interface CommandLineOptionOfNumberType;
interface CommandLineOptionOfBooleanType;
interface TsConfigOnlyOption;
interface CommandLineOptionOfListType;

type CommandLineOption;
```

# Installation

```ts
pnpm add -D typescript unleashed-typescript
```

```ts
import ts from 'unleashed-typescript';

// Use ts as usual.
```

# CLI

With no arguments `unleashed-typescript` patches your current version of typescript **if it is not already patched**. If you want to sync your version after an update you can use the `--force-patch` option.

```bash
Usage: pnpm unleashed-typescript [options]

Options:
--unpatch Revert the patch (useful before a build/publish).
--force-patch Force patch from your current typescript version.
```

# Alternatives

`unleashed-typescript` is a combination of the alternatives listed below. But instead of maintaining an up-to-date build of TypeScript we use your locally installed version.

## Remove @internal tags

- [byots](https://github.com/basarat/byots) Bring your own TypeScript with more internal definitions
- [ts-expose-internals](https://github.com/nonara/ts-expose-internals) Expose TypeScript internal types by simply adding a development dependency

## Expose TypeChecker methods

- [tsd-typescript](https://github.com/SamVerschueren/tsd-typescript) TypeScript with some extras for type-checking.

# Contributing 💜

See [CONTRIBUTING.md](https://github.com/skarab42/unleashed-typescript/blob/main/CONTRIBUTING.md)