diff --git "a/docs/src/Notes/TypeScript/\345\267\245\345\205\267\347\261\273\345\236\213.md" "b/docs/src/Notes/TypeScript/\345\267\245\345\205\267\347\261\273\345\236\213.md" deleted file mode 100644 index 9707a9b..0000000 --- "a/docs/src/Notes/TypeScript/\345\267\245\345\205\267\347\261\273\345\236\213.md" +++ /dev/null @@ -1,123 +0,0 @@ -# TypeScript 工具类型 - -以下是一些常用的 TypeScript 工具类型,适用于各种类型转换和处理场景。 - -## `Partial` - -`Partial` 将类型 `T` 的所有属性变为可选的。这在你需要创建一个对象的部分副本时非常有用。 - -```ts -interface Person { - name: string; - age: number; -} - -type PersonPartial = Partial; - -const person: PersonPartial = { - name: 'linbudu', - age: 18 -}; -``` -## Required -```ts -interface Person { - name?: string; - age?: number; -} - -const person: Required = { - name: 'linbudu', - age: 18 -}; - -``` -## Readonly -将类型 T 的所有属性变为只读的。这意味着你可以读取这些属性,但不能修改它们 -```ts -interface Person{ - name:string; - age:number; -} -const person:Readonly={ - name:'lay', - age:18 -} -//无法为“name”赋值,因为它是只读属性。 -person.name='123' -``` -## Record -创建一个对象类型,其属性键是 K 类型的联合,属性值是 T 类型的。 -```ts -type Keys = 'name' | 'age' | 'location'; -type Person = Record< Keys, string | number>; - -const person: Record< Keys, string | number> = { - name: 'Alice', - age: 30, - location: 123, -}; -``` -## Pick -`Pick`: 从类型 T 中挑选出 K 指定的属性,创建一个新的类型。 -```ts -interface Person { - name: string; - age: number; - location: string; -} - -type NameAndAge = Pick; - -const person: NameAndAge = { - name: 'Alice', - age: 18 -}; -``` -## Qmit -`Omit`: 从类型 T 中排除 K 指定的属性,创建一个新的类型。 -```ts -interface Person { - name: string; - age: number; - location: string; -} - -type NameAndLocation = Omit; - -const person: NameAndLocation = { - name: 'Alice', - location: 'Wonderland', -}; -``` -## Exclude -从类型 T 中排除 U 类型的值,创建一个新的联合类型。 -```ts -type T = 'a' | 'b' | 'c'; -type U = 'a' | 'd'; - -type TWithoutU = Exclude; // 'b' | 'c' -``` -## Extract -从类型 T 中提取 U 类型的值,创建一个新的联合类型。 -```ts -type T = 'a' | 'b' | 'c'; -type U = 'a' | 'd'; - -type TWithoutU = Exclude; // 'a' -``` -## NonNullable -将类型T中的null和undefined排除,创建一个新的类型。 -```ts -type T = string | null | undefined; -type NonNullableT = NonNullable; // string -``` -## Parameters -获取函数类型 T 的参数类型组成的元组类型 -```ts -function fn(x: number, y: string): void {} -type ParametersOfFn = Parameters; // [number, string] -const params: ParametersOfFn = [123, 'hello']; -fn(...params) -``` -