Partial
Partial的作用是将传入的属性变成可选项,原理就是使用keyof拿到所有属性名,然后再使用in遍历,T[P]拿到相应的值
type Partial<T> = {
[P in keyof T] ?: T[P]
}
Required
Required 的作用是将传入的属性变为必选项,原理是使用-?将可选项的?去掉。与之对应的还有个+?。
type Required<T> = {
[P in keyof T] -?: T[P]
}
Readonly
Readonly的作用是将传入的属性变为只读选项
type Readonly<T> = {
readonly [P in keyof T] : T[P]
}
Mutable
Mutable的作用是将传入属性的readonly移除。
type Mutable<T> = {
-readonly [P in keyof T] : T[P]
}
Pick
Pick的作用是从T中取出一系列K的属性
type Pick<T, K extends keyof T> = { [P in K]: T[P] }
Exclude
Exclude的作用是从T中找出U中没有的元素
type Exclude<T, U> = T extends U ? never : T
Omit
Omit的作用是忽略对象的某些属性功能
type Omit<T, K> = Pick<T, Exclude<keyof T, K>>
TypeScript中的数据类型有
Undefined、
Null(空类型)、
Number(数值类型)、string(字符串类型)、Boolean、any(任意类型)、void(空类型)、Array(数组类型)、Tuple(元祖类型)。