这是我的tsconfig.json:
{
"compilerOptions": {
"strict": true,
"target": "es6",
"module": "commonjs",
"noImplicitAny": true,
"removeComments": true,
"preserveConstEnums": true,
"sourceMap": true
},
"files": [
"server.ts"
]
}
您会看到noImplicitAny
设置为true
。
这是我的server.ts
:
import * as express from 'express';
const app = express();
app.get('/:name', (req, res) => {
const name = req.params.name;
res.send(`Hello, ${name}`);
});
app.listen(3000, () => {
console.log('listen on http://localhost:3000')
});
请注意(req, res)
部分没有类型,但是打字稿没有给出任何错误。
我不确定哪里出了问题以及如何使打字稿引发错误。
这是一个有关此问题的小型完整演示项目:https://github.com/freewind-demos/typescript-express-demo
答案 0 :(得分:2)
noImplicitAny
会引发错误。
如果这种情况下req, res
没有被键入。由于它们是回调的参数,因此可以根据回调类型确定其类型,并分别推断为Request
和Response
。