This repository contains examples of using typetype to create typescript types, typetype is designed to generate complex typescript type with ease.
For example, to implement StringToUnion
in 531-medium-string-to-union:
export type function StringToUnion = (T extends string) => ^{
if(T extends `${infer char}${infer rest}`) {
return union [char, StringToUnion<rest>]
} else {
return never
}
}
The output will be:
export type StringToUnion<T extends string> = T extends `${infer char}${infer rest}` ? (char | StringToUnion<rest>) : never;
See it in action!
foreach example-set in this repo:
input = examples/<example-set>/<example-name>.type
output = examples/<example-set>/<example-name>.ts
test = examples/<example-set>/<example-name>.test.ts
- syntax: the grammar of typetype
- url-parser
- url-parser: simple url parser, parse individual part of url
- url-parser-2: parse url as a whole
- type-challenges
- solutions of type-challenges in typetype
> npm install
> npm run dev
This project is MIT licensed.