我正在使用 typescript 和 vue 开发一个网络项目。在阅读了 typescript-eslint 和 eslint-plugin-vue 的文档后,我已经解决了以下 eslint 配置:
module.exports = {
root: true,
env: {
browser: true,
es2021: true,
},
extends: [
"eslint:recommended",
"plugin:vue/vue3-essential",
"plugin:@typescript-eslint/recommended",
"plugin:@typescript-eslint/recommended-requiring-type-checking",
"prettier",
],
parser: "vue-eslint-parser",
parserOptions: {
parser: "@typescript-eslint/parser",
project: ["./tsconfig.json"],
tsconfigRootDir: __dirname,
extraFileExtensions: [".vue"],
},
overrides: [],
parserOptions: {
ecmaVersion: "latest",
sourceType: "module",
},
plugins: ["vue", "@typescript-eslint"],
};
我的 vue 文件解析正确,但我的 ts 文件有不合理的 lint 错误。看来它们是针对 javascript 语法进行检查的。如下图所示:
如果我删除 parserOptions 并将解析器更改为 @typescript-eslint/parser,ts 文件会正确 lint,但 vue 文件的 lint 会中断。
有人知道吗?
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
据我所知,您有两个选择:
将
解析器:“vue-eslint-parser”更改为@typescript-eslint/parser为 .ts 文件添加覆盖,并将解析器设置为
@typescript-eslint/parser我想我太累了或者太老了,无论如何,问题在于同一个 lint 文件中有两个
parserOptions部分。这是最终的工作版本:module.exports = { root: true, env: { browser: true, es2021: true, }, extends: [ "eslint:recommended", "plugin:vue/vue3-essential", "plugin:@typescript-eslint/recommended", "plugin:@typescript-eslint/recommended-requiring-type-checking", "prettier", ], parser: "vue-eslint-parser", parserOptions: { parser: "@typescript-eslint/parser", project: ["./tsconfig.json"], ecmaVersion: "latest", sourceType: "module", extraFileExtensions: [".vue"], }, // parserOptions: { // ecmaVersion: "latest", // sourceType: "module", // }, plugins: ["vue", "@typescript-eslint"], };