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

use*_*909 2 javascript import typescript

当我写打字稿时:

我有以下代码:

import * as express from 'express'
Run Code Online (Sandbox Code Playgroud)

和系统给我一个错误:

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.
Run Code Online (Sandbox Code Playgroud)

因此,我更改为:

import express from 'express'
Run Code Online (Sandbox Code Playgroud)

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

bas*_*rat 6

他们之间有什么区别

  • * as express将导入模块的全部内容
  • express 是将仅导入默认导出

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

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