angular - Hur man kontrollerar om ett objekt har en egenskap och om egenskapens värde är sant i TypeScript


Jag vill kontrollera om följande objekt har egenskapen forums och om värdet på den egenskapen är true.

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

Jag använder TypeScript Angular 5.

Jag gör detta för nu och det fungerar bra.

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

Finns det ett Angular-sätt eller TypeScript-sätt för detta?

Svar #1

Kortaste sättet, detta kommer att kontrollera båda som standard :

if(this.itemsmodel[item])

Först kommer det att försöka hämta this.itemsmodel av item, om det inte finns så kommer det att returnera undefined och om det hittas så kommer det att returnera värdet,

Samma men långsamt sätt att göra:

if(this.itemsmodel[item] && this.itemsmodel[item] === true)

Här kommer först att kontrollera om nyckeln finns, sedan kommer att kontrollera värdet

Som ett resultat kan du konvertera din kod till något liknande detta :

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

Relaterade artiklar