什么是“全局声明”,这怎么可能?我在Lodash输入中找到了这段代码。问题是当我尝试将其完全复制到my.d.ts文件中时,因为global不是名称空间,模块,函数或var,所以不允许这样做。因此,问题是如何在Typescript中进行此声明。
PS 因此,也许还有其他一些编译器选项可以允许使用此选项或?
declare global {
interface Set<T> { }
}
答案 0 :(得分:2)
这不依赖于编译器设置。 declare global
用于具有import
或export
的文件中,以在全局范围内声明事物。在包含import
或export
的文件中,这是必需的,因为此类文件被视为模块,并且在模块中声明的任何内容都在模块范围内。
在不是模块的文件(不包含declare global
/ import
)中使用export
是错误的,因为这样的文件中的所有内容都位于全局范围内。