Typescript 中的“声明全局”是啥?
Posted
技术标签:
【中文标题】Typescript 中的“声明全局”是啥?【英文标题】:What is 'declare global' in Typescript?Typescript 中的“声明全局”是什么? 【发布时间】:2019-11-24 04:29:55 【问题描述】:什么是“声明全局”,怎么可能?我在 Lodash 类型中找到了这段代码。问题是,当我尝试将其复制到 my.d.ts
文件中时,因为 global 不是命名空间、模块、函数或 var,我不允许这样做。所以问题是如何在 Typescript 中声明这个声明。
PS 那么也许有一些额外的编译器选项可以实现这一点?
declare global
interface Set<T>
【问题讨论】:
【参考方案1】:这不依赖于编译器设置。 declare global
在具有import
或export
的文件中使用以在全局范围内声明事物。这在包含 import
或 export
的文件中是必需的,因为这些文件被视为模块,并且在模块中声明的任何内容都在模块范围内。
在不是模块的文件(即不包含import
/export
)中使用declare global
是错误的,因为这样的文件中的所有内容都在全局范围内。
【讨论】:
是的,这些原理我都是通过实践学会的,但是有官方文档解释吗? @JohnHou 目前有typescriptlang.org/docs/handbook/… 和typescriptlang.org/docs/handbook/declaration-files/templates/…以上是关于Typescript 中的“声明全局”是啥?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Angular 2 / Typescript 中声明全局变量? [关闭]
TypeScript 中的“as const”是啥意思,它的用例是啥?
TypeScript 中的“keyof typeof”是啥意思?