在NodeJS项目中,我已经安装了typescript
3.2,express
4.16和@types/express
4.16
我正在用Typescript编写我的应用程序,以便稍后进行翻译。 @types/express
的文档说要以这种方式导入和使用:
import * as express from "express";
const app = express();
但是,当我这样做时,第二行会引发错误,因为express
不是函数(没有呼叫签名)。当我控制台日志express
时,我得到一个具有application
属性的对象
另一方面,如果我以这种方式导入和使用:
import express = require('express');
const app = express();
然后一切正常,控制台日志记录express
显示了一个名为createApplication
或类似功能的函数。该函数本身似乎具有与第一种方法相同的application
属性。
有什么区别?
答案 0 :(得分:1)
从TypeScript@2.7开始,支持以下用于导入默认模块的语法:
import b from "bar";
您带有*的示例将导入模块的所有导出as a module object 但是你可能想要
import express from "express";
const app = express();