【发布时间】:2020-01-28 03:09:26
【问题描述】:
将 Express JS 服务器转换为 TS,以前正常运行的 JS 条件现在会抛出奇怪的错误。
示例:if (req!.body?.userObj) req.session!.userObj = req.body!.userObj
使用ts-node 运行正常,没有问题。但是运行tsc 编译会抛出这些错误:
error TS1109: Expression expected.
55 if (req!.body?.userObj) req.session!.userObj = req.body!.userObj
~
middleware/payloadHandle.ts:55:27 -
error TS1005: ':' expected.
55 if (req!.body?.userObj) req.session!.userObj = req.body!.userObj
【问题讨论】:
-
您使用的是哪个版本的
tsc??.运算符是在 TypeScript 3.7 中添加的。 -
@Dai 就是这样...不同的计算机,在 3.6 上工作
-
为什么你不尝试让它变成这样:
if (req.body.userObj) req.session.userObj = req.body.userObj;没有?和!。因为如果我没记错的话,?是可选的,要使用这个可选的,你可以在你的界面中做这样的例子:interface myInterface { body?: string }
标签: javascript typescript express