【问题标题】:In typescript, how to do import merge from "lodash/merge"在打字稿中,如何从“lodash/merge”导入合并
【发布时间】:2022-01-21 07:00:50
【问题描述】:

使用 es6,我可以只从库中导入一个函数来最小化整个包,例如:

import merge from "lodash/merge"

但是,在 typescript 中,上面这句话会导致编译错误:Cannot find module "lodash/merge"。如何解决?

【问题讨论】:

标签: javascript typescript


【解决方案1】:

实际上,您可以使用'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

【讨论】:

  • 这一定是您问题的解决方案!
  • @TakácsBotond - 如果您将 lodash 用于其他目的,则不会。这将导致加载两个库。
  • 看起来 lodash.merge 有一段时间没有更新,并且与 NPM 上的主要 lodash 包不同步
【解决方案2】:

更新

做到这一点的现代方法是使用单独的包。例如对于merge,您将安装和使用lodash.merge,即

import merge from 'lodash.merge'

PS:确保 "esModuleInterop": true 在您的 tsconfig.json 中,因为它需要 ES 默认导入合并才能工作。

旧答案

找不到模块“lodash/merge”。如何解决它

TypeScript 的定义不支持单独加载 lodash 成员。所以你只能import * as _ from "lodash"

【讨论】:

  • 为什么这是公认的答案? ://
猜你喜欢
  • 2023-02-02
  • 1970-01-01
  • 1970-01-01
  • 2019-11-12
  • 2020-11-29
  • 1970-01-01
  • 2022-07-28
  • 2017-07-31
  • 2021-07-23
相关资源
最近更新 更多