VS Code 默认支持 ES6 语法,标红多因配置问题:检查语言服务是否为 JavaScript(非 ES Preview)、禁用干扰插件、确保 jsconfig.json 中 target/lib 匹配 ES2017+、ESLint 需配 @babel/eslint-parser。

VS Code 默认就支持 ES6 语法,不用额外装插件
VS Code 从早期版本起就内置了对 ES6+ 语法的识别和高亮,const、let、=>、解构、async/await 等都能正常显示。你看到报错或标红,大概率不是“不支持”,而是环境配置或类型检查在干扰。
为什么写 const foo = () => {} 还被标红?
常见原因是:JavaScript language features 扩展没启用,或者工作区启用了 JavaScript (ES Preview) 这类实验性语言服务(它反而会误报合法 ES6 语法)。
- 检查左下角状态栏是否显示
JavaScript(不是JavaScript (ES Preview)),点击可切换 - 打开命令面板(
Ctrl+Shift+P/Cmd+Shift+P),运行Developer: Toggle Developer Tools,看控制台有没有Failed to load language configuration类错误 - 禁用所有第三方 JS/TS 插件(比如
Babel JavaScript),只留官方ESLint或Prettier(如果需要)
tsconfig.json 或 jsconfig.json 会影响 ES6 语法提示吗?
会,而且影响很直接——特别是 "target" 和 "lib" 字段。VS Code 的智能提示和类型检查依赖这些配置来判断哪些语法是“合法”的。
- 纯 JS 项目建议加
jsconfig.json,内容至少包含:{ "compilerOptions": { "target": "ES2017", "lib": ["ES2017"] } } - 如果
"target"设成"ES5",VS Code 可能对?.、??、Promise.allSettled等标黄警告(不是报错,但提示“可能不兼容”) - 删掉
jsconfig.json后问题消失?说明是配置限制太严,不是编辑器不支持
ESLint 报 Parsing error: Unexpected token 怎么办
这是 ESLint 解析器不认新语法,和 VS Code 本身无关。VS Code 只是把 ESLint 的结果展示出来。
- 确认用了
@babel/eslint-parser或@typescript-eslint/parser(而非默认的espree) -
.eslintrc.js中要显式指定:parser: '@babel/eslint-parser', parserOptions: { requireConfigFile: false, babelOptions: { presets: ['@babel/preset-env'] } } - 如果只用
eslint-plugin-react却没配解析器,const [a, b] = useState()就会触发Unexpected token
jsconfig.json 目标版本、ESLint 解析器选型。改一个地方,可能三个地方跟着变。










