假设我的代码如下:
function defaultIt(s: MaybeString): string {
if (typeof s.content === "string") {
return s.content;
}
return "";
}
class MaybeString {
content: string|void;
}
如果我错了,请纠正我,但我相信这对你来说是类型安全的;任何符合MaybeString
的输入都会产生字符串。但是,TypeScript给出了一个错误:Type 'string | void' is not assignable to type 'string'
。
如何让TypeScript通过检查类型来识别我已消除歧义?
谢谢!
答案 0 :(得分:1)
目前您可以使用其他变量:
@PostConstruct
或者施放到字符串:
var temp:string|void = s.content;
if (typeof temp === "string") {
return temp;
}
对于可以使用if (typeof s.content === "string") {
return <string>s.content;
}
功能的课程,请参阅this article了解详情