常德政务网站,安徽华力建设集团网站,连云港东海网站建设,wordpress官网中文版发现有错误、或者理解错误#xff0c;及时联系我#xff0c;感谢#xff01;#xff01; 文章目录 1、‘’符号2、‘|’符号3、‘‘Partial’’4、‘Required’5、‘Pick’6、 ‘Omit’ testA、testB、testC是我下面要用到的类 type testA {name: string,age: numbe…发现有错误、或者理解错误及时联系我感谢 文章目录 1、‘’符号2、‘|’符号3、‘‘Partial’’4、‘Required’5、‘Pick’6、 ‘Omit’ testA、testB、testC是我下面要用到的类 type testA {name: string,age: number
}type testB {name: string,sex: number
}type testC {name: string,address?: string
}
1、‘’符号
‘’表示合并两个类型
//此时的demo类型就是testA 与 testB的合并类型
let demo:testA testB//没问题
demo {
name:tjq,
age:18,
sex:1
}//报错因为此时没有sex字段
demo {
name:tjq,
age:18,
}//倘如testB修改为
type testB {
name:number,
sex:number
}
//由于testB和testA共同存在name属性并且name属性类型不同n合并后name属性会变成never类型(报错)2、‘|’符号
{// ‘|’ 此时b的类型表示要么满足testA的类型、要么满足testB的类型或者两种都满足let demo: testA | testBdemo {name: 123,sex: 2}demo {name: 123,age: 18,sex: 1}}3、‘‘Partial’’
//‘Partial’这个关键字表示将某个类的所有属性全部转为可选
let demo: PartialtestA//demo不进行赋值没问题
demo {
}
//demo仅赋值一个name属性没问题
demo {
name:tjq
}
4、‘Required’
//‘Required’这个同‘Partial’恰恰相反这个关键字是将类的所有属性转为必填
let demo:RequiredtestC
//没问题
demo {
name:tjq,
address:NanJing
}
//报错本身address是可选的但是通过‘Required’转为了必填
demo {
name:tjq,
}5、‘Pick’
//‘Pick’ 表示过滤出一个属性 picktypekey从type参数里面挑选出key的类型let demo: PicktestA, namedemo {name: tjq,}// 报错age类型已经被‘Pick’过滤// demo {// name: tjq,// age:18// }let demo2: PicktestA, keyof testAdemo2 {name: tjq,age: 18}6、 ‘Omit’
{// ‘Omit’ 表示过滤出一个属性 Omittypekey从type参数里面”去掉“key的类型let demo: OmittestA, keyof testBdemo {age: 18}// 报错name类型已经被‘Omit’过滤// demo {// name: tjq,// age:18// }
}