This is a simplified implementation of TypeScript's type system that's written in TypeScript's type annotations. This means that it uses types only — with no runtime code whatsoever.
You pass TypeScript code as a string to the TypeCheck
generic and get possible type errors back (See the live demo):
☝ Please note that this project is meant to be used for fun and learning purposes and not for practical use.
See a live demo in your browser on the the github.dev editor.
Alternatively, install @ronami/hypescript
in your project with yarn
or npm
(TypeScript 4.7 or later is required):
yarn add @ronami/hypescript
Only a subset of TypeScript's syntax and features are available. Here's a list of examples (with browser demo links) for some code examples:
- Variables
- Functions
- Arrays
- Objects
- Methods
- Function return type
- Equality
- Arithmetic operations
- Global types
- TypeScripts Type System is Turing Complete
- Functions and algorithms implemented purely with TypeScript's type system
- Typing the Technical Interview in TypeScript
- A collection of TypeScript type challenges with online judge
- Extreme Explorations of TypeScript's Type System
- A SQL database implemented purely in TypeScript type annotations