好的,我们走了:
this.currentRecID
被定义为数字。
鉴于此,在代码中的某些时候,您必须检查:
if (this.currentRecID === '0' ) {}
但是,由于我理解的原因,打字稿不允许你if (this.currentRecID === '0' ) {}
; this.currentRecID
的变量类型是数字,因此可以理解它不能容忍' 0'拉屎。
然后你考虑部署类型断言 - 因为你期望它在这种情况下很方便。考虑到这一点,你就是这样;
if ( <string>this.currentRecID === '0' ) {}
但是很快就会被这条可爱的消息所阻止:
[ts] Type 'number' cannot be converted to type 'string'.
出于什么方式?你怎么会得到this.currentRecID真的&#39; 0&#39 ;?
答案 0 :(得分:1)
如果您需要确保变量是一个字符串或数字,通常是这样做的
if (typeof this.currentRecID === 'number') {
// this.currentRecID would be of type number inside this block
}
但是看起来你不是在监视用户输入或者休息api或类似的东西,否则类型号的变量如何变成字符串?在类成员上检查var类型尤其奇怪。任何不受信任的数据来源都应事先以某种方式进行验证