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  |