You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决Vue+TS项目中ESLint提示Unexpected Token解析错误的问题

报错原因

这个报错不是代码逻辑错误,分两种场景触发:

  1. 场景1:判断逻辑写在Vue <template> 标签内
    Vue模板的HTML解析器会把表达式里的>字符识别为HTML标签的闭合标记,因此会抛出该解析错误,这是Vue模板语法的规则限制,不是ESLint配置问题。
  2. 场景2:判断逻辑写在<script>标签内
    如果这段代码是写在脚本块里,说明你的项目没有正确配置Vue+TS的ESLint解析规则,解析器把TS代码当成了模板内容解析导致报错。

解决方案

针对场景1(逻辑在模板内)

三种可选方案,按优先级推荐:

  • 优先把判断逻辑抽离到脚本块的计算属性/方法中,模板直接调用封装后的属性,示例:
// script 中
const hasFile = computed(() => target.files?.length > 0)
<!-- template 中 -->
<div v-if="hasFile">...</div>
  • 把>转义为HTML实体&gt;,直接写在表达式中:v-if="files && files?.length &gt; 0"
  • 把>用花括号包裹为表达式文本:v-if="files && files?.length {'>'} 0"

针对场景2(逻辑在脚本内)

按顺序检查配置:

  1. 确认script标签已声明TS语言属性:<script lang="ts"> 或 <script setup lang="ts">
  2. 替换代码中的尖括号类型断言为as语法,避免尖括号和标签解析规则冲突:
// 替换前
const target:HTMLInputElement = <HTMLInputElement>e.target
const res = JSON.parse(<string>reader.result)
// 替换后
const target = e.target as HTMLInputElement
const res = JSON.parse(reader.result as string)
  1. 检查ESLint配置是否正确配置了Vue+TS解析器,核心配置示例如下:
// .eslintrc.js 核心片段
module.exports = {
  parser: 'vue-eslint-parser',
  parserOptions: {
    parser: '@typescript-eslint/parser',
    sourceType: 'module'
  },
  extends: [
    'plugin:vue/vue3-essential',
    'eslint:recommended',
    '@vue/typescript/recommended'
  ]
}
  1. 确认已安装所有必要的ESLint依赖:vue-eslint-parser、@typescript-eslint/parser、@vue/eslint-config-typescript

内容的提问来源于stack exchange,提问作者Antoine Kurka

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 04:21:01