本文主要是介绍加深我对typeScript的印象(、|、Partial、Required、Pick、Omit),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
发现有错误、或者理解错误,及时联系我,感谢!!
文章目录
- 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: Partial<testA>//demo不进行赋值,没问题
demo = {
}
//demo仅赋值一个name属性,没问题
demo = {
name:"tjq"
}
4、‘Required’
//‘Required’这个同‘Partial’恰恰相反,这个关键字是将类的所有属性转为必填
let demo:Required<testC>
//没问题
demo = {
name:"tjq",
address:"NanJing"
}
//报错,本身address是可选的,但是通过‘Required’转为了必填
demo = {
name:"tjq",
}
5、‘Pick’
//‘Pick’ 表示过滤出一个属性 pick<type,key>,从type参数里面"挑选出"key的类型let demo: Pick<testA, "name">demo = {name: 'tjq',}// 报错,age类型已经被‘Pick’过滤// demo = {// name: 'tjq',// age:18// }let demo2: Pick<testA, keyof testA>demo2 = {name: "tjq",age: 18}
6、 ‘Omit’
{// ‘Omit’ 表示过滤出一个属性 Omit<type,key>,从type参数里面”去掉“key的类型let demo: Omit<testA, keyof testB>demo = {age: 18}// 报错,name类型已经被‘Omit’过滤// demo = {// name: 'tjq',// age:18// }
}
这篇关于加深我对typeScript的印象(、|、Partial、Required、Pick、Omit)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!