打字稿中 === 的问题

问题描述 投票:0回答:1

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

if-statement angular6 typescript3.0
1个回答
0
投票

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

因此,如果您尝试比较两个数值,但其中一个是数字的字符串表示形式,则比较会因

===
运算符而失败。

可能您正在使用像“1”这样的字符串值,要检查这一点,您可以执行如下操作:

console.log(typeof this.totalTenants)

如果结果是字符串,您应该将运算符更改为

==
或将该值转换为在变量前面加上
+
的数字,如下所示:

if (+this.totalTenants === 1) {
© www.soinside.com 2019 - 2024. All rights reserved.