javascript中import * as模块和import模块之间有什么区别

时间:2019-04-30 05:12:25

标签: javascript typescript import

当我写打字稿时:

我有此代码:

import * as express from 'express'

系统给我一个错误:

Type originates at this import. A namespace-style import cannot be called or constructed, and will cause a failure at runtime. Consider using a default import or import require here instead.

因此,我更改为:

import express from 'express'

它们之间有什么区别,为什么第一种方法不能调用或构造?

1 个答案:

答案 0 :(得分:6)

  

它们之间有什么区别

  • * as express将导入模块的整个内容
  • express将仅导入默认导出
  

为什么第一种方法无法调用或构造?

根据ES规范,模块本身不可调用。因此,您将无法执行express(),即函数调用。因此,它必须映射到模块的成员,在本例中为default导出成员