使用es6,我可以从库中只导入一个函数,以最小化整个捆绑包,如:
import merge from "lodash/merge"
但是,在typescript中,上面的句子会导致编译错误:找不到模块"lodash/merge"。如何解决?
实际上,您可以使用'lodash.merge'
库导入单个函数
import merge from 'lodash.merge'
const result: any = merge(obj1, obj2)
但是
您需要将此属性添加到tsconfig.json "esModuleInterop": true
没有这个,它将无法工作
[cit]https://github.com/lodash/lodash/issues/3192#issuecomment-411963038
更新
实现这一点的现代方法是使用单独的包。例如,对于merge
,您将安装并使用lodash.merge
,即
import merge from 'lodash.merge'
PS:确保
"esModuleInterop": true
在您的tsconfig.json
中,因为合并的ES默认导入需要它才能工作。
老答案
找不到模块";lodash/merge";。如何解决
TypeScript的定义不支持单独加载lodash成员。所以你只能import * as _ from "lodash"
。