typescript - Typescript 中的“声明全局”是什么?
问题描述
什么是“声明全球”,它怎么可能?我在 Lodash 类型中找到了这段代码。问题是当我尝试将它复制到my.d.ts
文件中时,因为 global 不是命名空间、模块、函数或 var,我不允许这样做。所以问题是如何在 Typescript 中声明这个声明。
PS所以也许有一些额外的编译器选项可以做到这一点?
declare global {
interface Set<T> { }
}
解决方案
这不依赖于编译器设置。declare global
在具有import
或export
声明全局范围内的事物的文件中使用。这在包含import
或export
因为此类文件被视为模块的文件中是必需的,并且在模块中声明的任何内容都在模块范围内。
在不是模块的文件中使用declare global
(即不包含import
/ export
)是错误的,因为这样的文件中的所有内容都在全局范围内。
推荐阅读
- react-native - React Navigation - 如何在屏幕之间重复传递数据?
- path - Windows 8.1 中意外删除的路径变量
- xamarin - 无法解析程序集或 Windows 元数据文件“Shared.dll”
- java - Nashorn 访问 Java 对象的方法
- react-native - 在 Play 商店中上传 React Native 应用程序
- spring - Spring数据redis java.lang.NoSuchMethodError: org.springframework.util.Assert.isTrue(ZLjava/util/function/Supplier;)V
- html - 表单提交在 Ruby on mobile 视图中创建 GET 调用而不是 POST 调用
- node.js - SyntaxError: missing ) 在 user.js 中的参数列表之后
- node.js - 如果由于 NodeJs 中的超时限制而导致请求不成功,则捕获它
- python-3.x - 连接拒绝与 mqtt 服务器连接