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.
- Host: GitHub
- URL: https://github.com/skarab42/unleashed-typescript
- Owner: skarab42
- License: mit
- Created: 2022-07-11T13:12:29.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2023-08-03T04:54:15.000Z (about 2 years ago)
- Last Synced: 2025-03-19T01:45:26.821Z (7 months ago)
- Topics: internal, tssert, type-check, type-checker, types, typescript, unleashed
- Language: TypeScript
- Homepage: https://www.npmjs.com/package/unleashed-typescript
- Size: 304 KB
- Stars: 5
- Watchers: 2
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
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)