首页 > 解决方案 > Typescript 中的“声明全局”是什么?

问题描述

什么是“声明全球”,它怎么可能?我在 Lodash 类型中找到了这段代码。问题是当我尝试将它复制到my.d.ts文件中时,因为 global 不是命名空间、模块、函数或 var,我不允许这样做。所以问题是如何在 Typescript 中声明这个声明。

PS所以也许有一些额外的编译器选项可以做到这一点?

declare global {
    interface Set<T> { }
}

标签: typescripttypescript-typings

解决方案


这不依赖于编译器设置。declare global在具有importexport声明全局范围内的事物的文件中使用。这在包含importexport因为此类文件被视为模块的文件中是必需的,并且在模块中声明的任何内容都在模块范围内。

在不是模块的文件中使用declare global(即不包含import/ export)是错误的,因为这样的文件中的所有内容都在全局范围内。


推荐阅读