typescript - 如何在 Typescript 中声明一个全局的 globalThis?
问题描述
我一直在谷歌上搜索有关如何在 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;
}
}
我在 webpack 中收到以下错误
TS2304: Cannot find name 'Soho'
在代码中我试图使用我的全局如下
Soho.Locale
我的tsconfig.json
文件设置是否正确,还是我的d.ts
文件有问题?
解决方案
tsconfig.json
我的文件中有错误。错误出在指定的files
属性中,它告诉 Typescript 在编译期间仅使用该文件。
因此,我的自定义d.ts
文件省略了错误。
至于解决方案。删除属性或使用该属性files
将文件夹包含在自定义中。d.ts
include
推荐阅读
- javascript - javascript中的Postgres RegExp验证
- azure-service-fabric - 缺少群集证书会导致 Add-AzServiceFabricClusterCertificate 失败:对象引用未设置为对象的实例
- php - 使用 PHP 邮件时提交 HTML 表单时出现 HTTP ERROR 405
- python - 在while循环python中创建简单列表
- c# - 是否可以从 Visual Studio 内部构建主要的 Unity C# 项目?
- json - 在 React Js 中使用地图访问嵌套 json
- javascript - 解决 forEach 不是函数
- php - PHP SELECT/Show last[number] 插入数据库的项目
- django - Python reportlab - 如何在 SimpleDocTemplate 的最后一页上绘制一些东西?
- python - 在 Python 中绘制等高线图顶部的点收敛