【发布时间】:2022-01-21 07:00:50
【问题描述】:
使用 es6,我可以只从库中导入一个函数来最小化整个包,例如:
import merge from "lodash/merge"
但是,在 typescript 中,上面这句话会导致编译错误:Cannot find module "lodash/merge"。如何解决?
【问题讨论】:
标签: javascript typescript
使用 es6,我可以只从库中导入一个函数来最小化整个包,例如:
import merge from "lodash/merge"
但是,在 typescript 中,上面这句话会导致编译错误:Cannot find module "lodash/merge"。如何解决?
【问题讨论】:
标签: javascript typescript
实际上,您可以使用'lodash.merge' 库导入单个函数
import merge from 'lodash.merge'
const result: any = merge(obj1, obj2)
但是
您需要将此属性添加到 tsconfig.json "esModuleInterop": true
没有这个就不行了
[引用] https://github.com/lodash/lodash/issues/3192#issuecomment-411963038
【讨论】:
lodash.merge 有一段时间没有更新,并且与 NPM 上的主要 lodash 包不同步
做到这一点的现代方法是使用单独的包。例如对于merge,您将安装和使用lodash.merge,即
import merge from 'lodash.merge'
PS:确保
"esModuleInterop": true在您的tsconfig.json中,因为它需要 ES 默认导入合并才能工作。
找不到模块“lodash/merge”。如何解决它
TypeScript 的定义不支持单独加载 lodash 成员。所以你只能import * as _ from "lodash"。
【讨论】: