Это диагностическое сообщение выводится, когда в выражении, используемом в *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"
}
}
}
}
Подробнее см. в разделе конфигурация расширенной диагностики.