如何在Svelte的$赋值场景禁用no-unused-expressions规则告警
解决Svelte反应式语句触发@typescript-eslint/no-unused-expressions告警的问题
要保留@typescript-eslint/no-unused-expressions规则同时消除Svelte反应式语句的告警,可通过以下两种方式处理:
全局配置(推荐)
确保依赖版本兼容
先升级eslint-plugin-svelte到最新版本,它对Svelte语法与TypeScript ESLint的兼容性做了优化:npm install eslint-plugin-svelte@latest --save-dev调整ESLint配置
在你的ESLint配置文件(如.eslintrc.cjs)中,做两处关键设置:- 让
svelte-eslint-parser接管Svelte文件的解析,并内部使用@typescript-eslint/parser处理TypeScript代码 - 给
@typescript-eslint/no-unused-expressions规则添加allowComma: true选项,允许Svelte反应式语句中的逗号表达式
完整配置示例:
module.exports = { parser: '@typescript-eslint/parser', parserOptions: { ecmaVersion: 'latest', sourceType: 'module', extraFileExtensions: ['.svelte'], }, overrides: [ { files: ['*.svelte'], parser: 'svelte-eslint-parser', parserOptions: { parser: '@typescript-eslint/parser', }, }, ], plugins: ['@typescript-eslint', 'svelte'], extends: [ 'eslint:recommended', 'plugin:@typescript-eslint/recommended', 'plugin:svelte/recommended', ], rules: { '@typescript-eslint/no-unused-expressions': [ 'error', { allowShortCircuit: true, allowTernary: true, allowComma: true, // 关键:允许逗号表达式,适配Svelte反应式语法 }, ], }, };原理:Svelte的
$: somevar, somefunction();是合法的逗号表达式语法,但@typescript-eslint/no-unused-expressions默认禁止未使用的逗号表达式,开启allowComma后会忽略这类合法场景,同时保留对其他无用逗号表达式的检查。- 让
临时行内忽略(不推荐,仅应急用)
如果不想全局调整规则,可在触发告警的行添加ESLint忽略注释:
// eslint-disable-next-line @typescript-eslint/no-unused-expressions $: somevar, somefunction();
内容的提问来源于stack exchange,提问作者Pandorque
相关产品推荐
相关产品推荐

