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
(元祖类型)。