Skip to content

Instantly share code, notes, and snippets.

View erodactyl's full-sized avatar
🎯
Focusing

Erik Davtyan erodactyl

🎯
Focusing
View GitHub Profile
@erodactyl
erodactyl / main.md
Created March 1, 2023 16:55 — forked from hediet/main.md
Proof that TypeScript's Type System is Turing Complete
type StringBool = "true"|"false";


interface AnyNumber { prev?: any, isZero: StringBool };
interface PositiveNumber { prev: any, isZero: "false" };

type IsZero<TNumber extends AnyNumber> = TNumber["isZero"];
type Next<TNumber extends AnyNumber> = { prev: TNumber, isZero: "false" };
type Prev<TNumber extends PositiveNumber> = TNumber["prev"];