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