callbackFn(args: IGovedo | IKrava) {
// How to check here type of args
}
在上面的代码中你可以猜到IGovedo和IKrava是接口类型。 如果我使用这种方法,检查args是IGovedo,IKrava,null还是undefined的最佳方法是什么?
使用最新的1.6版本的打字稿。
已编辑:与旧问题不重复,但已解决 - 标记为已解决的答案。
答案 0 :(得分:3)
您需要的是用户定义的类型保护功能。
interface IGovedo {
govedo: string;
}
interface IKrava {
krava: string;
}
function isGovedo(object: any): object is IGovedo {
return 'govedo' in object;
}
let foo: IGovedo | IKrava;
if (isGovedo(foo)) {
// foo has type IGovedo;
} else {
// foo has type IKrava.
}