Я пытался найти какой-то обновленный ответ о том, как объявлять глобальные переменные в Typescript. Но я не уверен, какой урок / руководство имеет наиболее обновленное решение.
В любом случае я пытаюсь заставить мой глобальный объект объявить d.ts
для работы. Прямо сейчас я настроил так, чтобы мой проект Typescript был собран и упакован с помощью webpack / ts-loader.
Мой файл tsconfig. json выглядит следующим образом. В руководствах, которые я прочитал, сказано, что мне не нужно устанавливать typeRoots
, поскольку Typescript может сам находить типы. Я пробовал с и без так или иначе, и оба привели к тому же самому.
{
"files": [
"app.ts",
],
"compilerOptions": {
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"module": "commonjs",
"moduleResolution": "node",
"noImplicitAny": false,
"target": "es5",
"declaration": false,
"sourceMap": true,
"skipLibCheck": true,
"lib": ["es6", "dom"],
"esModuleInterop": true,
"typeRoots": [
"./typings/",
"../../../../../node_modules/@types/"
]
}
}
И мой d.ts
файл, который я назвал soho.d.ts
, содержит следующее
declare global {
namespace Soho {
}
interface Window {
Soho: Soho;
}
interface Soho {
Locale: any;
}
}
Я получаю следующую ошибку, хотя в веб-пакете
TS2304: Cannot find name 'Soho'
В коде я пытаюсь использовать свой глобальный код следующим образом
Soho.Locale
Правильно ли я установил мой tsconfig.json
файл или что-то не так с моим d.ts
файлом?