类型保护是可执行运行时检查的一种表达式,用于确保该类型在一定的范围内。换句话说,类型保护可以保证一个字符串是一个字符串,尽管它的值也可以是一个数值。
类型保护与特性检测并不是完全不同,其主要思想是尝试检测属性、方法或原型,以确定如何处理值。目前主要有四种的方式来实现类型保护,这里主要演示使用in关键字进行类型守卫;
interface YuZhouK{
name:string,
dis:number
}
interface YuZhouV{
name:string,
mis:string
}
type YouZhou = YuZhouK | YuZhouV;
function testYouZhou(v:YouZhou){
if('dis' in v){
console.log("dis"+v.name);
}
if('mis' in v){
console.log("mis"+v.name);
}
}
testYouZhou({name:'mayouchen',dis: 888});