VSCode保存时自动在??字符间加空格引发报错,求解决方法
??添加空格的问题 这个问题是因为代码格式化工具(或VSCode自带格式化规则)错误地将空值合并运算符??拆分为两个单独的?并添加空格,以下是具体解决方法:
检查并配置Prettier
如果项目使用Prettier作为格式化工具,首先确保你的Prettier版本支持ES2020+(空值合并运算符是ES2020特性),建议更新到最新稳定版。然后在项目根目录的.prettierrc(或.prettierrc.json)中添加配置,避免拆分??:{ "overrides": [ { "files": ["*.js", "*.jsx", "*.ts", "*.tsx"], "options": { "operatorLinebreak": "none" } } ] }调整VSCode自带格式化设置
打开VSCode设置(快捷键Ctrl+,/Cmd+,),搜索javascript.format.insertSpaceBeforeAndAfterBinaryOperators,取消勾选该选项;或者直接在settings.json中添加:"javascript.format.insertSpaceBeforeAndAfterBinaryOperators": false注意:这个设置会影响所有二元运算符的空格规则,若需精细化控制,优先使用Prettier配置。
检查ESLint规则
若项目启用ESLint,确保space-infix-ops规则不会错误处理??。在.eslintrc(或.eslintrc.json)中配置:{ "rules": { "space-infix-ops": ["error", { "int32Hint": false }] } }同时建议更新ESLint到最新版本,新版本已正确识别
??运算符。确认格式化工具优先级
在VSCode右下角点击当前文件的语言标识(如JavaScript),选择「Configure 'JavaScript' language based settings」,将默认格式化工具设置为你配置好的Prettier(或其他支持??的工具),替代VSCode自带的格式化器。
内容的提问来源于stack exchange,提问作者Ömer Faruk Demirel

