TypeScript utility types
下面列举了一些项目中常用的typescript工具
1、Partial
构造一个所有属性都Type设置为optional的类型。该实用程序将返回一个表示给定类型的所有子集的类型,所以所有属性都会加上一个undefined
example:
1 | export interface User { |
2、Required
构造一个类型,该类型由Typeset的所有属性设置为required
example:
1 | export interface User { |
3、Readonly
构造一个所有属性都Type设置为的类型readonly,这意味着无法重新分配所构造类型的属性。
# example:
1 | export interface User { |
4、Record<Keys,Type>
构造一个对象类型,其属性键为Keys,属性值为Type。该实用程序可用于将一个类型的属性映射到另一个类型。
example:
1 | export interface User { |
5、Pick<Type, Keys>
通过Keys从中选择一组属性(字符串文字或字符串文字并集)来构造类型Type。
example:
1 | export interface User { |
6、Omit<Type, Keys>
通过从中选择所有属性Type然后删除Keys(字符串文字或字符串文字的并集)来构造类型。
example:
1 | export interface User { |
7、Parameters
从函数类型的参数中使用的类型构造一个元组类型Type。
example:
1 | const fn = (str: string, num: number) => {}; |
8、ReturnType
构造一个由函数的返回类型组成的类型Type。
example:
1 | const fn = (str: string, num: number) => { |
9.类型守卫
我们知道,unknown
类型是不能直接访问属性的。
example:
1 | function ErrorBox({error}: {error: unknown}) => { |
这时候就可以用类型守卫来解决这个问题:
1 | const isError = (value: any): value is Err => value?.message |