我有一个 node.js 应用程序,它将一些配置信息附加到 global
对象:
global.myConfig = {
a: 1,
b: 2
}
TypeScript 编译器不喜欢这样,因为 Global
类型没有名为 myConfig
的对象:
TS2339:“全局”类型上不存在属性“myConfig”。
我不想这样做:
global['myConfig'] = { ... }
如何扩展 Global
类型以包含 myConfig
或者只是告诉 TypeScript 闭嘴并相信我?我更喜欢第一个。
我不想更改 node.d.ts
中的声明。我看到了这个 SO 帖子 并尝试了这个:
declare module NodeJS {
interface Global {
myConfig: any
}
}
作为扩展现有 Global
接口的一种方式,但它似乎没有任何效果。
原文由 d512 发布,翻译遵循 CC BY-SA 4.0 许可协议
你可能有类似
vendor.d.ts
的东西:您的文件需要 清除 任何根级别
import
或exports
。这会将文件变成一个 模块 并断开它与 全局类型声明命名空间 的连接。更多: https ://basarat.gitbooks.io/typescript/content/docs/project/modules.html