作者:欧阳火凡 | 来源:互联网 | 2023-09-13 14:31
typescript学习系列3:联合类型和类型保护-1.联合类型:通过|来实现一个联合类型,如下代码:interfaceBird{fly:Boolean;sing:(){
1.联合类型:
通过"|"来实现一个联合类型,如下代码:
interface Bird{
fly:Boolean;
sing:()=>{}
}
interface Dog{
fly:Boolean;
bark:()=>{}
}
function trainAnimals(animals:Bird | Dog){
}
2.类型保护以及常用的类型保护的方式:
1.联合类型只会对共有属性或者方法予以提示
- 联合类型中的,
ts代码
提示只能给出共有的方法或者属性
2.类型保护的常用方式:
interface Bird{
fly:Boolean;
sing:()=>{}
}
interface Dog{
fly:Boolean;
bark:()=>{}
}
function trainAnimals(animals:Bird | Dog){
if(animals.fly)
{
(animals as Bird).sing();
}
else
{
(animals as Dog).bark();
}
}
function trainAnimalsSecond(animals:Bird | Dog){
if("sing" in animals)
{
animals.sing();
}
else
{
animals.bark();
}
}
function ass(first:string | number,second:string | number){
if(typeof first === "string" || typeof secOnd=== "string"){
return `${first}${second}`;
}
return first + second;
}
function addSecond(first:object | NumberObj,second:object | NumberObj){
if(first instanceof NumberObj && second instanceof NumberObj){
return first.count + second.count;
}
return 0;
}