Внести вклад
Расширенная диагностика

Пропущено ключевое слово let в выражении *ngFor

Это диагностическое сообщение выводится, когда в выражении, используемом в *ngFor, отсутствует ключевое слово let.

import { Component } from '@angular/core';

@Component({
  // В выражении `*ngFor` пропущено ключевое слово `let`.
  template: `<div *ngFor="item of items">{{ item }}</div>`,
})
class MyComponent {
  items = [1, 2, 3];
}

В чем проблема?

Отсутствие let указывает на синтаксическую ошибку в строке *ngFor. Это также означает, что переменная item не попадет в область видимости должным образом, и выражение {{ item }} не будет обработано корректно.

Что следует сделать?

Добавьте пропущенное ключевое слово let.

import { Component } from '@angular/core';

@Component({
  // Теперь ключевое слово `let` присутствует в выражении `*ngFor`,
  // в этом случае диагностические сообщения не выводятся.
  template: `<div *ngFor="let item of items">{{ item }}</div>`,
})
class MyComponent {
  items = [1, 2, 3];
}

Требования к конфигурации

Для работы любой расширенной диагностики необходимо включить опцию strictTemplates. У проверки missingNgForOfLet нет дополнительных требований, кроме включенного strictTemplates.

Что делать, если этого нельзя избежать?

Эту диагностику можно отключить, отредактировав файл tsconfig.json вашего проекта:

{
  "angularCompilerOptions": {
    "extendedDiagnostics": {
      "checks": {
        "missingNgForOfLet": "suppress"
      }
    }
  }
}

Подробнее см. в разделе конфигурация расширенной диагностики.