介绍
内置类型函数说明
TS内置了一些函数,帮你快速批量操作一些类型。
比如类型A 有两个属性,都不是可选的属性,一定要有的。
而类型B想要和类型A一样的属性,但是属性都是可选。
这个时候你可以手动编写B,反正就2条属性,和A的一样就好了。
但是,如果A有几十条属性,你怎么办?此时用内置的函数,可以批量把A的属性变成可选的。
函数说明
https://www.typescriptlang.org/docs/handbook/utility-types.html#partialtype
常用函数
属性操作
Partial 把属性变成可选
// A 类型有两个属性,必选
type A = {
A1: string;
A2: string;
}
let aa:A = {
A1:"111",
A2:"222"
}
// Partial把A的属性变成可选
type B = Partial<A>
// B
let bb:B ={
A1:"2333"
}
Required 把属性变成必选
// A 类型有两个属性,可选
type A = {
A1?: string;
A2?: string;
}
let aa:A = {
A1:"111",
}
// 变成必选
type B = Required<A>
let bb:B ={
A1:"2333",
A2:"222"
}
Omit 找到某个属性并删除
// A 类型有3个属性,必选
type A = {
A1: string;
A2: string;
A3: string
}
let aa:A = {
A1:"111",
A2:"111",
A3:"111",
}
// B继承A,且删掉属性A1
type B = Omit<A,"A1">
let bb:B ={
A2:"2333",
A3:"222"
}
InstanceType 构造函数的实例类型
class C {
x = 0;
y = 0;
}
type T0 = InstanceType<typeof C>;
let a:T0 = {
x:1,
y:2
}
let b:C = {
x:1,
y:2
}
这个主要是用于Vue中使用TS时,获取组件实例的,可以查看 https://www.yuque.com/yejielin/mypn47/gf762y#FvvEQ