我的TypeScript项目是为带有AMD模块的浏览器编译的。我自己也包括lodash.min.js,还有许多其他UMD库,它们都声明全局变量,比如moment和_。我需要告诉我的TypeScript关于Lodash的全局_变量。我怎样才能用进口来做到这一点呢?如果我安装@types/lodash并使用import * as _ from "lodash";,它将尝试在运行时动态获取AMD模块,这会破坏一切。
如果我有一个声明_全局的文件,即export declare const _: LodashStatic;,我甚至不能在另一个文件中导入我的声明,或者它试图在运行时加载内容。如果declare把它当作一个有效的导入,那么TypeScript关键字的意义是什么?我认为声明只是告诉编译器闭嘴,并且在运行时会有单独加载的东西。对我来说幸运的是,我可以在我的数百个文件中的每一个文件中使用declare const _: LodashStatic;,但是如果我能声明它一次,然后在其他文件中导入它,那就太好了。
发布于 2018-03-27 21:26:31
告诉类型记录是否存在全局类型的通常方法是通过您的types中的tsconfig.json数组。如果安装了@types/lodash,那么在tsconfig.json中安装以下内容将允许您在任何地方引用_:
{
"compilerOptions": {
"types": ["lodash"]
}
}https://stackoverflow.com/questions/49522080
复制相似问题