我需要一些具有强类型的全局变量。
如此提及: 在node.js中扩展TypeScript全局对象,为了向global
变量添加字段,我需要添加一个.d.ts文件,该文件扩展了在node.d.ts中指定的Global
接口。
同时,正如Basarat所提到的:
您的文件必须清除任何根级别的导入或导出。这将把文件转换为模块,并将其与全局类型声明命名空间断开连接。
现在,我需要在Global
接口上拥有一些字段,这些字段的类型是我创建的自定义接口:
declare namespace NodeJS{
interface Global {
foo: Foo
bar: Bar
}
}
我非常不愿意使用any
类型。
我可以将所有接口声明移动/复制到此声明文件中,但对我来说这是一个糟糕的解决方案,因为Foo和Bar反过来聚合了许多其他接口的字段,包括Moment等第三方接口。
我需要解决这个悖论的方法。