Ответ 1
Если вы настроите таргетинг на es5, вам нужно будет включить итерацию вниз уровня в явном виде в tsconfig:
{
"compilerOptions": {
"target": "es5",
"downlevelIteration": true
}
}
Когда я использую выражение yield*
в TypeScript, оно всегда выдает ошибку.
Тип "IterableIterator" не является типом массива.
Как правильно установить типы, не используя any
чтобы избежать ошибок?
function* g1(): IterableIterator<number> {
yield 2;
yield 3;
yield 4;
}
function* g2(): IterableIterator<number> {
yield 1;
// ERROR: Type 'IterableIterator<number>' is not an array type.
yield* g1();
yield 5;
}
const iterator = g2();
Если вы настроите таргетинг на es5, вам нужно будет включить итерацию вниз уровня в явном виде в tsconfig:
{
"compilerOptions": {
"target": "es5",
"downlevelIteration": true
}
}
tsc demo.ts --lib "es6","dom" --downLevelIteration
Используйте эту команду для компиляции. Это решит проблему. Добавление этих значений в tsconfig.json не решит проблему, если tsconfig.json создан с target: es5. обновление tsconfig.json вручную не будет работать. Используйте эту команду, просто измените имя вашего .ts файла.