我是Typescript的新手。
我遇到了一个重要问题。
import isEmpty from 'lodash/isEmpty'
失败。。isEmpty.default is not a function
我偶然发现了这个。。
https://github.com/lodash/lodash/issues/3542
并添加a..
import * as isEmpty from 'lodash/isEmpty'
确实修复了。
但为什么呢?
为什么Typescript需要这样的导入?我正在努力理解为什么这是必要的,以及幕后发生了什么。
您的问题是只能使用第一个示例中的语法导出默认函数/类。
每个文件只能有一个默认导出,如果您查看源文件,它将看起来像
export default {function/class}
还可以编写源代码以允许导出非默认方法,例如
export {function/class}
这些导出不一定是文件名。导出本身可以命名为不同的名称,即导出lodash别名为_。
如果你想从库中提取一个非默认方法,并且该方法在库源代码中被命名为导出,如果你使用的是es6 ,你可以使用析构函数语法
import { isEmpty } from 'lodash'
在第二个示例中,将包别名为isEmpty。理想情况下,使用主lodash包中的destructuring方法来使用不是默认导出的单个方法/函数,或者导出整个默认值并调用该方法。即
import _ from 'lodash'
_.isEmpty(var);