Рассмотрим следующий пример. Код TypeScript
const p = new Promise((resolve, reject) => {resolve([47, undefined])})
const asy = async () => {const [a, b] = await p; console.log(a, b)}
asy()
Когда я запускаю его в node
без проверки типов, он работает нормально и печатает 47 undefined
. Однако проверка типов в VS Code подчеркивает [a, b]
следующей ошибкой: Type 'unknown' must have a '[Symbol.iterator]()' method that returns an iterator.ts(2488)
.
Как я могу исправить эту ошибку и почему это происходит? Я думал, что любой действительный код JavaScript должен быть допустимым кодом TypeScript.
edit: Добавление as any
после ожидания - это a решение.