【发布时间】:2020-01-22 09:20:30
【问题描述】:
我有一个类型保护,它接受一个字符串,我想知道它是否是联合类型的一部分,但是如果我们在联合类型中添加新字符串,我不想通过添加新字符串来管理我的类型保护:
type GreatAnimal = 'Dog' | 'Cat'
function isGreatAnimal(pet: string): pet is GreatAnimal {
return pet === 'Dog' || pet === 'Cat'; // Here I would prefer to do something like 'pet keyof GreatAnimal'
}
function Foo(animal:string){
if (isGreatAnimal(animal)) {
// do something
}
else {
// do something else
}
}
如果我在联合类型“GreatAnimal”中添加 Fish,我不想更新我的类型保护来管理 Fish。
我正在使用最后一个打字稿版本
【问题讨论】:
标签: typescript