我一直在寻找有关如何在Typescript中声明全局变量的最新答案。但是我不确定哪个教程/指南具有最新的解决方案。
无论如何,我试图使自定义全局声明d.ts
正常工作。
现在,我已经设置好了,以便使用webpack / ts-loader构建并捆绑我的Typescript项目。
我的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
的{{1}}文件包含以下内容
soho.d.ts
虽然在webpack中我遇到以下错误
declare global {
namespace Soho {
}
interface Window {
Soho: Soho;
}
interface Soho {
Locale: any;
}
}
在代码中,我尝试按以下方式使用我的全局变量
TS2304: Cannot find name 'Soho'
我的Soho.Locale
文件设置是否正确,还是我的tsconfig.json
文件有问题?
答案 0 :(得分:0)
我的./sireg-linux exec --loader-sitemap-sitemap "$line"
文件中有错误。并且错误出现在指定的tsconfig.json
属性中,该属性告诉Typescript仅在编译期间使用该文件。
因此,我的自定义files
文件在这里省略了,因此出现了错误。
至于解决方案。要么删除d.ts
属性,要么使用files
属性将文件夹包含自定义d.ts
。