0

我的 TypeScript 项目是为带有AMD模块的浏览器编译的。我包括lodash.min.js我自己,还有一堆其他的UMD库,它们都声明了全局变量,比如moment_. 我需要告诉我的 TypeScript _Lodash 的全局变量。我怎么能用进口做到这一点?如果我安装@types/lodash并使用import * as _ from "lodash";,它会尝试在运行时动态获取 AMD Lodash 模块,这会破坏一切。

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

4

1 回答 1

-1

告诉 Typescript 存在全局类型的常用方法是types通过tsconfig.json. 如果您已经@types/lodash安装,那么您tsconfig.json应该可以在_任何地方引用以下内容:

{
  "compilerOptions": {
    "types": ["lodash"]
  }
}
于 2018-03-27T21:26:31.327 回答