UMD全局变量的TypeScript模块类型?

时间:2018-03-27 20:41:22

标签: javascript typescript module umd

我的TypeScript项目是针对具有 AMD 模块的浏览器编译的。我自己包含lodash.min.js以及其他所有声明全局变量的 UMD 库,例如moment_。我需要告诉我的TypeScript关于Lodash的全局_变量。我怎么能用进口做到这一点?如果我安装@types/lodash并使用import * as _ from "lodash";,它会尝试在运行时动态获取AMD Lodash模块,这会破坏所有内容。

如果我有一个文件,我声明_全局,即export declare const _: LodashStatic;,我甚至无法在另一个文件中导入我的声明,或者它试图在运行时加载东西。如果TypeScript将其视为功能导入,那么declare关键字的重点甚至是什么。我认为声明只是告诉编译器关闭,并且在运行时会有单独加载的东西。幸运的是,我可以在我的数百个文件中的每一个中使用declare const _: LodashStatic;,一切正常,但如果我只能声明一次然后导入其他文件就会很好......

1 个答案:

答案 0 :(得分:-1)

告诉Typescript有关全局类型存在的常用方法是通过types中的tsconfig.json数组。如果您安装了@types/lodash,那么在tsconfig.json中添加以下内容可以让您在任何地方引用_

{
  "compilerOptions": {
    "types": ["lodash"]
  }
}