Я пишу код, который хочу запустить в браузере.
/** @type {number} */
const nodeHandle = setTimeout(() => console.log("node"), 100); // ERROR: Type 'Timeout' is not assignable to type 'number'.
/** @type {number} */
const browserHandle = window.setTimeout(() => console.log("browser"), 100);
VS Код подразумевает, что setTimeout
является функцией NodeJS (определение в node_modules/@type/node/globals.d.ts
).
Проект также требует узла для инструментов сборки. (поэтому я не могу удалить его).
Я пытался:
- Установка
{"exclude": ["node_modules"]}
в tsconfig. json и в jsconfig. json - Установка
{"compilerOptions":{"lib": ["DOM","ESNext","DOM.Iterable"]}}
в tsconfig. json и в jsconfig. json
Должен быть простой способ сообщить tscheck, что он игнорирует типизацию узлов, или лучше установить среду для браузера.
(Примечание: VS Code предлагает и разрешает функции браузера, такие как performance.mark et c. Хотя они не доступны в узле. Также должно быть возможно установить окружение для узла.)