阿宝哥

Results 13 comments of 阿宝哥

#### 3.1 SetOptional ```typescript type Foo = { a: number; b?: string; c: boolean; } type Simplify = { [P in keyof T]: T[P] } type SetOptional = Simplify //...

> ```ts > type Foo = { > a: number > b?: string > c?: boolean > } > > > type SetOption = { > [P in K]?: T[P];...

#### 5.1 使用 Parameters 和 ReturnType 工具类型 ```typescript type AppendArgument any, A> = (x: A, ...args: Parameters) => ReturnType type Fn = (a: number, b: string) => number type FinalF...

> Parameters 和 ReturnType 也是使用 infer 实现 对滴,infer 还是蛮有用的,后面的挺多题目也都有用到它。

```typescript type TrimLeft = V extends ` ${infer R}` ? TrimLeft : V; type TrimRight = V extends `${infer R} ` ? TrimRight : V; type Trim = TrimLeft; //...

@mingzhans 如果没有设置 "strictNullChecks": true 配置项的话,可以想一想应该如何处理。

`any` 类型是个 ”黑洞“ 会吞噬除了 `never` 类型之外的大多数类型。本道题的关键点就是对 `any` 类型的处理。 ``` ts type A0 = any & 1 // any type A1 = any & boolean // any type A2 = any...

```typescript type JoinStrArray = Arr extends [infer El,...infer Rest] ? Rest extends string[] ? El extends string ? Result extends "" ? JoinStrArray : JoinStrArray : `${Result}` : `${Result}` :...

#### 2.1 函数重载 ```typescript function f(a: string, b: string): string function f(a: number, b: number): number function f(a: string | number, b: string | number ): string | number {...

#### 8.1 解法一 ```typescript type NonEmptyArray = [T, ...T[]] ``` #### 8.2 解法二 ```typescript type NonEmptyArray = T[] & { 0: T }; ```