javascript – Node.js全局变量和TypeScript

前端之家收集整理的这篇文章主要介绍了javascript – Node.js全局变量和TypeScript前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我需要一些强类型的全局变量.

如下所述:Extending TypeScript Global object in node.js,为了向全局变量添加字段,我需要添加一个扩展了node.d.ts中指定的Global接口的.d.ts文件.

另外,正如Basarat所说:

Your file needs to be clean of any root level import or exports. That
would turn the file into a module and disconnect it from the global
type declaration namespace.

现在,我需要在Global接口上有字段,其类型是我创建的自定义接口:

declare namespace NodeJS{
    interface Global {
        foo: Foo
        bar: Bar
    }
}

我非常不愿意使用任何类型.

我可以将所有接口声明移动/复制到此声明文件,但这对我来说是一个糟糕的解决方案,因为Foo和Bar反过来会聚合其他接口的许多字段,包括Moment等第三方接口.

我需要一个解决这个悖论的方法

最佳答案
我发现这个有效.

有一个文件在NodeJS.Global接口上声明任何类型的属性.此文件必须清除导入或引用.

node.d.ts

declare namespace NodeJS{
    interface Global {
        foo: any
    }
}

然后在第二个文件中声明一个具有正确类型的全局变量.

global.d.ts

import IFoo from '../foo'

declare global {

  const foo:Ifoo

}

猜你在找的JavaScript相关文章