我有一个node.js应用程序,该应用程序将一些配置信息附加到该global对象:
global
global.myConfig = { a: 1, b: 2 }
TypeScript编译器不喜欢这样,因为该Global类型没有名为的对象myConfig:
Global
myConfig
TS2339:类型“ Global”上不存在属性“ myConfig”。
我不想这样做:
global['myConfig'] = { ... }
如何扩展Global类型以包含myConfig或只是告诉TypeScript关闭并信任我?我希望第一个。
我不想更改其中的声明node.d.ts。我看到了这样的帖子,并尝试了这个:
node.d.ts
declare module NodeJS { interface Global { myConfig: any } }
作为扩展现有Global接口的一种方法,但似乎没有任何效果。
我看到了这样的帖子,并尝试了这个:
您可能有类似以下内容vendor.d.ts:
vendor.d.ts
// some import // AND/OR some export declare module NodeJS { interface Global { spotConfig: any } }
您的文件需要 清除 任何根级别import或exports。这将把文件变成一个 模块, 并将其与 全局类型声明名称空间 断开连接。
import
exports
更多:https : //basarat.gitbooks.io/typescript/content/docs/project/modules.html