我有一个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块。
我正在使用打字稿处理Angular 6。
如果我if(this.totalTenants == 1)双等号==
然后执行了if块,但是出现如下所示的错误: [tslint] ==应该等于===(三等分)
答案 0 :(得分:0)
==
和===
运算符之间的区别在于,第一个进行自动转换以方便比较,而第二个则不进行任何转换。
因此,如果您尝试比较两个数字值,但其中一个是数字的字符串表示形式,则使用===
运算符进行比较会失败。
可能您正在使用类似“ 1”的字符串值,要执行此操作,可以执行以下操作:
console.log(typeof this.totalTenants)
如果它以字符串形式出现,则应将运算符更改为==
或将该值强制转换为以+
开头的数字,如下所示:
if (+this.totalTenants === 1) {