我一直在谷歌上寻找一些关于如何在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/"
]
}
}我命名为soho.d.ts的d.ts文件包含以下内容
declare global {
namespace Soho {
}
interface Window {
Soho: Soho;
}
interface Soho {
Locale: any;
}
}虽然我在webpack中得到了以下错误
TS2304: Cannot find name 'Soho'在代码中,我尝试使用全局变量,如下所示
Soho.Locale是我的tsconfig.json文件设置正确,还是我的d.ts文件有问题?
发布于 2020-04-03 21:23:31
我的tsconfig.json文件中有一个错误。错误出现在指定的files属性中,该属性告诉Typescript在编译期间只使用该文件。
因此,我的自定义d.ts文件被省略了,因此出现了错误。
对于解决方案也是如此。删除files属性,或者使用include属性包含具有自定义d.ts的文件夹。
https://stackoverflow.com/questions/60999228
复制相似问题