打字稿中的===问题

时间:2018-08-26 08:19:19

标签: if-statement angular6 typescript3.0

我有一个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] ==应该等于===(三等分)

1 个答案:

答案 0 :(得分:0)

=====运算符之间的区别在于,第一个进行自动转换以方便比较,而第二个则不进行任何转换。

因此,如果您尝试比较两个数字值,但其中一个是数字的字符串表示形式,则使用===运算符进行比较会失败。

可能您正在使用类似“ 1”的字符串值,要执行此操作,可以执行以下操作:

console.log(typeof this.totalTenants)

如果它以字符串形式出现,则应将运算符更改为==或将该值强制转换为以+开头的数字,如下所示:

if (+this.totalTenants === 1) {