ClassVisitor.js出现SyntaxError: Unexpected token '||='错误求助
问题分析与解决
关于||=的含义
||=是ES2021引入的逻辑空赋值运算符,作用是仅当左侧变量的值为null或undefined时,才将右侧表达式的结果赋值给左侧变量。等价于:
withMethodDecorators = withMethodDecorators || ( methodNode.kind !== 'set' && node.params.some(param => param.decorators.length) );
错误原因
你遇到的SyntaxError本质是当前使用的Node.js版本不支持ES2021语法。||=需要Node.js 16.0.0及以上版本才能解析,而你的Node.js版本低于这个要求,导致无法识别@typescript-eslint依赖包中使用的新语法。
解决方案
方案1:升级Node.js版本
- 查看当前Node.js版本:
node -v - 如果版本低于16.x,升级到LTS版本(如16.x、18.x或20.x)。用nvm快速切换:
# 安装16.x版本 nvm install 16 # 切换到16.x版本 nvm use 16 - 重新执行原命令:
yarn run v1.22.19 tsc --noEmit && eslint . --ext .ts --fix
方案2:降级@typescript-eslint依赖包
如果无法升级Node.js,可降级@typescript-eslint相关包到兼容旧Node.js的版本:
- 修改项目
package.json中相关依赖为v5.x系列(v5.x支持Node.js 12+):{ "devDependencies": { "@typescript-eslint/eslint-plugin": "^5.62.0", "@typescript-eslint/parser": "^5.62.0" } } - 删除旧依赖文件:
rm -rf node_modules yarn.lock - 重新安装依赖:
yarn install - 再次执行原命令。
内容的提问来源于stack exchange,提问作者BruceyBandit
相关产品推荐
相关产品推荐

