type-challenges
type-challenges copied to clipboard
Collection of TypeScript type challenges with online judge
```ts type Has = T extends [infer H, ...infer R] ? Equal extends true ? true : Has : false; type Unique = T extends [...infer P, infer R] ?...
```ts // 你的答案 type Merge = { [K in keyof F | keyof S]:K extends keyof S ? S[K] : K extends keyof F ? F[K] : never } ```
```ts // 你的答案 type StringToUnion = T extends `${infer F}${infer R}` ? F | StringToUnion : never ```
```ts // your answers type TupleToObject = {[P in T[number]]: P} ```
```ts type Join = T extends [ infer H, ...infer R ] ? H extends string ? R extends string[] ? R extends [] ? H : `${H}${U}${Join}` : never...
```ts // your answers type TupleToUnion = T[number]; type OtherSolutionOfTupleToUnion = T extends Array ? K : never; ```
```ts // your answers type TupleToObject = { [K in T[number]]: K; } ```
```ts type First = T extends [infer K, ...any[]] ? K : never; type PopFront = T extends [any, ...infer P] ? P : never; type Target = T extends...
```ts // 你的答案 type AppendToObject = { [K in U | keyof T] : K extends keyof T ? T[K] : V } ```