首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试编译TypeScript -失败: if (!req.session?.jwt) { ... }

尝试编译TypeScript -失败: if (!req.session?.jwt) { ... }
EN

Stack Overflow用户
提问于 2020-06-23 20:06:22
回答 1查看 70关注 0票数 0

考虑下面的代码:

代码语言:javascript
复制
import { Request, Response, NextFunction } from 'express';
import jwt from 'jsonwebtoken';


export const currentUser = (
  req: Request,
  res: Response,
  next: NextFunction
) => {
  if (!req.session?.jwt) {
    // make sure that session is defind and then access "jwt" property
    return next();
  }

  try {
    const payload = jwt.verify(
      req.session.jwt,
      process.env.JWT_KEY!
    ) as UserPayload;

    req.currentUser = payload;
  } catch (error) {}

  next();
};

使用package.json:

代码语言:javascript
复制
{
  "name": "@something/common",
  "version": "1.0.2",
  "description": "",
  "main": "./build/index.js",
  "types": "./build/index.d.ts",
  "files": [
    "build/**/*"
  ],
  "scripts": {
    "clean": "del build /Q",
    "build": "npm run clean && tsc",
    "pub": "npm version patch && npm run build && npm publish"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "del-cli": "^3.0.0",
    "typescript": "^3.8.3"
  },
  "dependencies": {
    "@types/cookie-session": "^2.0.39",
    "@types/express": "^4.17.5",
    "@types/jsonwebtoken": "^8.3.9",
    "cookie-session": "^1.4.0",
    "express": "^4.17.1",
    "express-validator": "^6.4.0",
    "jsonwebtoken": "^8.5.1"
  }
}

每当我尝试用tsc编译时,我得到的结果是:

代码语言:javascript
复制
src/middlewares/current-user.ts:24:20 - error TS1109: Expression expected.

24   if (!req.session?.jwt) {
                      ~

src/middlewares/current-user.ts:24:24 - error TS1005: ':' expected.

24   if (!req.session?.jwt) {
                          ~


Found 2 errors.

这可能是什么原因造成的?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-23 22:34:33

确保tsc版本足够新,因为.?是一个相当新的添加。对于还不支持它的版本,这个错误是我所期望的(它假设这是一个三元运算符:condition ? a : b)。

也许您使用的是全局安装的版本,而不是软件包的版本?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62534314

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档