我有一个 if 块,如下所示:
if (this.totalTenants === 1) {
this.newTenants.tenant2 = Object.assign({ name: null, number: null }, this.emptyTenant);
this.newTenants.tenant3 = Object.assign({ name: null, number: null }, this.emptyTenant);
this.newTenants.tenant4 = Object.assign({ name: null, number: null }, this.emptyTenant);
this.newTenants.tenant2 = this.emptyTenant;
this.newTenants.tenant3 = this.emptyTenant;
this.newTenants.tenant4 = this.emptyTenant;
this.newTenants.rentAmount = 3200;
}
但是当 this.totalTenants 的值为 1 时,它不会进入 if 块。
我正在使用 typescript 开发 Angular 6。
如果我 if (this.totalTenants == 1) 双等号 ==
然后执行 if 块,但出现如下错误: [tslint] == 应该是 === (三等于)
==
和===
运算符之间的区别在于,第一个进行自动转换以方便比较,第二个不进行任何转换。
因此,如果您尝试比较两个数值,但其中一个是数字的字符串表示形式,则比较会因
===
运算符而失败。
可能您正在使用像“1”这样的字符串值,要检查这一点,您可以执行如下操作:
console.log(typeof this.totalTenants)
如果结果是字符串,您应该将运算符更改为
==
或将该值转换为在变量前面加上 +
的数字,如下所示:
if (+this.totalTenants === 1) {