Typescript lodash没有默认导出一个函数

ng2*_*ser 12 javascript typescript lodash

我试图从lodash只导入一个函数,如下所示:

import get from 'lodash/get';
Run Code Online (Sandbox Code Playgroud)

我已经安装了lodash和@ types/lodash,我收到了这个错误:

@ types/lodash/get/index"'没有默认导出.)

Ale*_*min 7

您可以使用import isEqual from 'lodash/isEqual';带有esModuleInterop编译器选项(tsconfig.json)中的标志的typescript从lodash导入单个函数

{
  "compilerOptions": {
    "module": "commonjs",
    "target": "es5",
    "lib": ["es6", "dom"],
    "moduleResolution": "node",
    "esModuleInterop": true,
    ...
  }
}
Run Code Online (Sandbox Code Playgroud)


Ami*_*eza 7

我遇到了同样的问题,我最终到了这里,

所以这里是解决方案:

你需要安装lodash-es

npm install --save lodash-es
Run Code Online (Sandbox Code Playgroud)

而不是普通的lodash

并阅读此链接

https://medium.com/@armno/til-importing-lodash-into-angular-the-better-way-aacbeaa40473

更新 1:它应该更容易,但无论如何

第 1 点:安装类型

 npm i -D @types/lodash-es
Run Code Online (Sandbox Code Playgroud)

第 2 点:从“lodash-es”而不是“lodash”导入

第 3 点:像这样导入,这是正确的方法(否则你会得到一个更大的包)

import  orderBy  from 'lodash-es/orderBy';
Run Code Online (Sandbox Code Playgroud)


MrH*_*Hen -3

您可以使用:

import { get } from "lodash";
Run Code Online (Sandbox Code Playgroud)

或者:

import { get } from "lodash-es";
Run Code Online (Sandbox Code Playgroud)

对于后者,您需要安装适当的键入文件(显然包括导出default):

npm install @types/lodash-es --save-dev
Run Code Online (Sandbox Code Playgroud)