如何在TypeScript中检查对象是否具有属性和属性值为true

时间:2018-02-06 04:47:54

标签: angular typescript

我想检查以下对象是否具有属性forums以及该属性值是否为true

{forums: true, pages: true, photos: true, videos: true}

我正在使用TypeScript Angular 5.

我现在这样做并且工作正常。

let item = 'forums';
if ( this.itemsmodel.hasOwnProperty(item) ) {
   //Which is true. 
   if (this.itemsmodel[item]) {
          item = item;
   } else {
          item = 'pages';
   }
}

是否有Angular方式或TypeScript方式?

1 个答案:

答案 0 :(得分:3)

最短路,默认情况下会检查两者:

if(this.itemsmodel[item])

首先它会尝试抓取this.itemsmodel item如果没有undefined那么它将返回if(this.itemsmodel[item] && this.itemsmodel[item] === true) ,如果找到它,那么它将返回值,

相同但漫长的做法:

let item = 'forums';
if (this.itemsmodel[item]) {
        item = item;
} else {
        item = 'pages';
}

首先将检查密钥是否存在,第二个将检查值

结果您可以将代码转换为以下内容:

deleteKey