【问题标题】:globals declarations with TypeScript使用 TypeScript 的全局声明
【发布时间】:2017-06-06 20:22:10
【问题描述】:

以下声明风格在 TypeScript 文件中是否有任何作用?

/* globals console define require React async */

或者有没有其他方法可以用 TypeScript 做到这一点?

【问题讨论】:

    标签: typescript typescript-typings typescript2.0


    【解决方案1】:

    不,它对 TypeScript 编译器没有影响。

    当前范围内的全局变量通常通过在 typescript 编译器选项中选择预定义库设置之一来选择,例如此命令行

    tsc --lib es5,dom
    

    将编译器提供的文件lib.es5.d.tslib.dom.d.ts 中声明的所有内容引入全局范围。

    如果您查看lib.dom.d.ts,您会看到例如window 是如何在那里声明的:

    declare var window: Window;
    

    Window 是该文件前面定义的接口。

    您可以对自己的全局变量执行相同的操作 - 您可以在顶层创建自己的包含 declare var.d.ts 文件,并在命令行中将该文件包含在编译中或将其添加到 filestsconfig.json

    Everything you installed in node_modules/@types 默认情况下也包含在编译中,因此这些类型声明的每个全局变量也在范围内,除非您通过在tsconfid.json 中设置“typeRoots”或“types”来限制它。

    此外,如果您使用带有 import 的库,它将添加在该库类型声明文件中声明的所有全局变量(以及在类型声明文件中来自其所有使用 import/// reference 指令引用的依赖项)。

    【讨论】:

      猜你喜欢
      • 2017-07-25
      • 2019-11-24
      • 2022-01-15
      • 1970-01-01
      • 2020-05-15
      • 2016-05-19
      • 1970-01-01
      • 1970-01-01
      • 2020-11-22
      相关资源
      最近更新 更多