zjxxxxxxxxx

Results 16 comments of zjxxxxxxxxx

```ts type Jsonified = T extends Date ? string : T extends MyClass ? "MyClass" : T extends () => void ? never : T extends object ? { [K...

```ts type Unpacked = T extends Promise ? Unpacked : T extends () => void ? ReturnType : T extends unknown[] ? T[number] : T; ```

```ts type StartsWith = T extends `${U}${infer R}` ? true : false; type EndsWith = T extends `${infer F}${U}` ? true : false; ```

```ts type NaiveFlat = T extends [infer F, ...infer R] ? (F extends unknown[] ? NaiveFlat : F) | NaiveFlat : T extends [] ? never : T; ```

> 一个月能告诉我一下,这里的 [number] 是什么用的吗?完全找不到文档呀 [number] 用来代指所有数组下标,不管下标 0 还是下标 1,它们都是 number 型。 [''a,'b'][number] === ['a','b'][0|1] === 'a'|'b'

```ts type Flat = T extends [infer F, ...infer R] ? F extends any[] ? [...Flat, ...Flat] : [F, ...Flat] : T; ```