TypeScript中特殊的常用类型
在TypeScript中,Record<string, any>
是一种特殊且常用的类型,用于表示键为字符串类型、值为任意类型的对象。除了这种类型外,TypeScript还提供了其他一些比较特殊的类型,它们在不同的场景下发挥着重要作用。以下是一些TypeScript中比较特殊的类型:
- Partial<T>:
- 作用:将T中的所有属性变为可选的。
- 示例:
type PartialPerson = Partial<{ name: string; age: number; }>;
相当于{ name?: string; age?: number; }
。
- Required<T>:
- 作用:将T中的所有属性变为必需的。
- 示例:与
Partial<T>
相反,如果有一个可选属性的类型,Required<T>
可以将其所有属性变为必需。
- Pick<T, K>:
- 作用:从T中选取出所有K中指定的属性。
- 示例:
type Name = Pick<{ name: string; age: number; }, "name">;
相当于{ name: string; }
。
- Omit<T, K>:
- 作用:从T中排除所有K中指定的属性。
- 示例:
type Age = Omit<{ name: string; age: number; }, "name">;
相当于{ age: number; }
。
- Readonly<T>:
- 作用:将T中的所有属性变为只读。
- 示例:
type ReadonlyPerson = Readonly<{ name: string; age: number; }>;
之后,尝试修改ReadonlyPerson
对象的属性将会导致编译错误。
- Record<K, T>:
- 除了之前提到的
Record<string, any>
外,Record
类型还可以用于更广泛的场景,通过指定不同的键类型K和值类型T来创建不同的索引类型。 - 示例:
Record<number, boolean>
表示一个对象的键为数字类型,值为布尔类型。
- 除了之前提到的
- Exclude<T, U>:
- 作用:从T中排除所有可以赋值给U的类型。
- 示例:
type T0 = Exclude<"a" | "b" | "c", "a">;
相当于"b" | "c"
。
- Extract<T, U>:
- 作用:提取T中可以赋值给U的类型。
- 示例:与
Exclude
相反,type T1 = Extract<"a" | "b" | "c", "a" | "f">;
相当于"a"
。
- NonNullable<T>:
- 作用:从T中排除null和undefined。
- 示例:
type T2 = NonNullable<string | null | undefined>;
相当于string
。
- Parameters<T>:
- 作用:获取函数类型T的参数类型组成的元组。
- 示例:
type T3 = Parameters<(x: number, y: string) => void>;
相当于[number, string]
。
- ConstructorParameters<T>:
- 作用:获取构造函数类型T的参数类型组成的元组。
- 示例:用于类构造函数参数的类型提取。
- ReturnType<T>:
- 作用:获取函数类型T的返回类型。
- 示例:
type T4 = ReturnType<() => string>;
相当于string
。
这些特殊类型在TypeScript中非常有用,它们提供了强大的类型操作能力,使得开发者能够更精确地定义和操作类型。
一个小前端
我是一个小前端
zs.duan@qq.com
重庆市沙坪坝
我的标签
小程序
harmonyOS
HTML
微信小程序
javaSrcipt
typeSrcipt
vue
uniapp
nodejs
react
防篡改
nginx
mysql
请求加解密
还没有人评论 快来占位置吧