type Fish = {
name: string,
swim: () => void
}
type Brid = {
name:string,
fly: () => void
}
const isFish = (pet: Fish | Brid): pet is Fish => {
return (pet as Fish).swim !== undefined
}
const getSmallPet = (): Fish | Brid => {
let brid: Brid = {
name: "sbrid",
fly(){
}
}
let fish: Fish = {
name:"sfish",
swim(){
}
}
return true ? brid : fish;
}
let pet = getSmallPet();
if (isFish(pet)){
pet.swim();
} else {
pet.fly();
}
const zoo: (Fish | Brid)[] = [getSmallPet(),getSmallPet()];
const underWater: Fish[] = zoo.filter(isFish);
const underWater2: Fish[] = zoo.filter(isFish) as Fish[];
ts学习笔记 - 类型谓词
最新推荐文章于 2023-06-16 11:50:54 发布