javascript - TSLint-fel "Förväntad en 'for-of'-slinga istället för en 'for'-slinga med denna enkla iteration"


Jag har en for-loop för att hämta ett ID från databasen:

for(var i = 0; i < data.GetContractId.length; i++) {
    if (data.GetContractId[i].ContractId) {
        this.contractExists = true;
    }
}

Nu får jag följande TSLint-fel:

Förväntade en 'for-of'-loop istället för en 'for'-loop med denna enkla iteration

Jag är inte säker på hur man använder det i det här fallet, kan någon hjälpa till?

Svar #1

TSLint ser att du kan använda for-of istället för for-loop, det är bara förbättrat och mer rent

for (let contract of data.GetContractId) {
  if (contract.ContractId) {
    this.contractExists = true;
    break;
  }
}

Men du kan använda some-metoden på array-objekt

 this.contractExists  = data.GetContractId.some(contract => contract.ContractId);

Metoden some() testar om minst ett element i arrayen uppfyller testet som implementeras av den angivna funktionen.

några