I have the following express route :
app.get('/:id', function (req, res) {
var idNum: number = Number(req.params.id);
var idCast: number = +req.params.id;
var id: number = req.params.id;
console.log('typeof idNum ', typeof idNum , ' ', 'idNum== 0 : ', idNum== 0 , ' ', 'idNum=== 0 : ', idNum=== 0);
console.log('typeof idCast', typeof idCast, ' ', 'idCast == 0 :', idCast == 0, ' ', 'idCast === 0 :', idCast === 0);
console.log('typeof id ', typeof id , ' ', 'id == 0 : ', id == 0 , ' ', 'id === 0 :' , id === 0);
res.json({});
});
this returns :
typeof idNum number idNum== 0 : true idNum=== 0 : true
typeof idCast number idCast == 0 : true idCast === 0 : true
typeof id string id == 0 : true id === 0 : false
我了解到TypeScript仅提供编译时类型检查,我猜这意味着它不知道req.params提供的参数是字符串。是否有任何方法可以自动将我的参数转换为数字?或者至少在我没有手动完成它时引发错误?否则,除非在完全使用TypeScript的环境中使用,否则它似乎是无用的。
最后,是否有任何“大型”开源项目使用ExpressJS与TypeScript,我可以从中阅读源代码?