TypeScript med Express: Type 'typeof import("express")' har ingen kall-signaturer


Feilen min er:

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

Min tsconfig.json er:

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

Min src/app.ts har:

// 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()

Linjen det er snakk om er const app=express()

Hva gjør jeg galt?

Svar #1

Sørg for at du ikke har "esModuleInterop": true satt i tsconfig.json. Å deaktivere denne innstillingen løste problemet for meg.

Svar #2

For å få dette til å fungere med "esModuleInterop": true satt til true i din tsconfig.json, kan du også gjøre dette.

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

kilde

Svar #3

Legg til @types/express-avhengigheten med npm i -D @types/express og deretter:

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

Relaterte artikler