我的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;
,一切正常,但如果我只能声明一次然后导入其他文件就会很好......
答案 0 :(得分:-1)
告诉Typescript有关全局类型存在的常用方法是通过types
中的tsconfig.json
数组。如果您安装了@types/lodash
,那么在tsconfig.json
中添加以下内容可以让您在任何地方引用_
:
{
"compilerOptions": {
"types": ["lodash"]
}
}