全局范围的扩展只能直接嵌套在外部模块或环境模块声明中(2669)

我想在全局范围内存储我的 NodeJS 配置。

我试图遵循这个 = > 在 node.js 中扩展 TypeScript 全局对象和其他解决堆栈溢出的方案,

我创建了一个名为 global.d.ts 的文件,其中包含以下代码

declare global {
namespace NodeJS {
interface Global {
config: MyConfigType
}
}
}

全局范围的扩展只能直接嵌套在 外部模块或环境模块声明 s.ts (2669)

但是这样做很好

declare module NodeJS  {
interface Global {
config: MyConfigType
}
}

问题是,我需要导入文件 MyConfigType来输入配置,但是第二个选项不允许这样做。

64078 次浏览

您可以这样指示文件是一个模块:

export {};


declare global {
namespace NodeJS {
interface Global {
config: MyConfigType
}
}
}

或者如果您试图在浏览器上下文中添加全局类型:

export {};


declare global {
interface Window {
ENV: any;
}
}