带Express的TypeScript:类型'typeof import(“ express”)'没有呼叫签名

时间:2019-09-21 15:36:56

标签: typescript express

我的错误是:

Error: src/app.ts(11,13): error TS2349: This expression is not callable.
  Type 'typeof import("express")' has no call signatures.

我的tsconfig.json是:

{
    "compilerOptions": {
        "outDir": "./built",
        "allowJs": true,
        "target": "es6",
        "esModuleInterop": true
    },
    "include": [
        "./src/**/*"
    ]
}

我的src/app.ts有:

// const Logger = require('./lib/logger')
import express from 'express';
import bodyParser from 'body-parser';
// const finale = require('finale-rest')
// const morgan = require('morgan')
const DB = require('./models')()


// const resources = require('./resources')

const app = express()

有问题的行是const app = express()

我在做什么错了?

3 个答案:

答案 0 :(得分:2)

确保在tsconfig.json中没有设置"esModuleInterop": true。禁用此设置可以为我解决问题。

答案 1 :(得分:1)

添加@types/express,然后:

import * as express from "express";
...
const app = express();

答案 2 :(得分:1)

要在 tsconfig.json 中将 "esModuleInterop": true 设置为 true,您也可以这样做。

import * as express from 'express';
...
const app = express.default();

source