typescript export {}如何影响声明全局

vxqlmq5t  于 2022-12-14  发布在  TypeScript
关注(0)|答案(2)|浏览(158)

global.d.ts

declare global {
  export interface Window {
    ...
  }

export {}

我意识到export {}对重新定义窗口模块有影响。
我看到一个简短的说明,export {}使d.ts文件成为一个模块。但是,我不明白d.ts成为一个模块是如何影响 typescript 的。有什么文件可以参考吗?

e4yzc0pl

e4yzc0pl1#

我认为下面的TypeScript官方文档应该会有所帮助。

  • 模块在其自己的范围内执行,而不是在全局范围内执行;这意味着在一个模块中声明的变量、函数、类等在该模块之外是不可见的,除非它们使用导出形式之一显式导出。2相反,要使用从不同模块导出的变量、函数、类、接口等,必须使用导入形式之一导入。(x = 1)*

简单的解释是:

  • “我们在全局.d.ts文件中使用export {}行将其标记为外部模块。模块是包含至少一个import或export语句的文件。我们必须这样做才能扩大全局作用域。”(来源:(x = 1,e = 1,f = 1)*
  • “如果您的文件不包含至少一个import或export语句,则会将其视为全局脚本文件,并且tsconfig.json文件中的isolatedModules设置禁止此行为。”(源代码:(https://bobbyhadz.com/blog/typescript-cannot-be-compiled-under-isolatedmodules)*
qyzbxkaa

qyzbxkaa2#

我想这个TypeScript的官方文档,可以帮助你!

全局修改模块

全局修改模块在导入时会改变全局作用域中的现有值。例如,可能存在一个库,在导入时会将新成员添加到String.prototype中。由于运行时冲突的可能性,这种模式有些危险,但我们仍然可以为它编写一个声明文件。
Typescript

相关问题