I’m encountering a problem with my ESLint configuration when using Svelte and TypeScript. Despite following various guides, I keep getting no-unused-vars warnings for reactive statements. Here’s my .eslintrc.cjs configuration:
module.exports = {
env: {
browser: true,
node: true,
es6: true,
},
overrides: [
{
files: ['*.svelte'],
parser: 'svelte-eslint-parser',
parserOptions: {
parser: '@typescript-eslint/parser',
},
},
],
extends: [
'plugin:svelte/recommended',
'plugin:boundaries/recommended',
'eslint:recommended',
'plugin:@typescript-eslint/eslint-recommended',
'plugin:@typescript-eslint/recommended',
'plugin:storybook/recommended',
],
globals: {
Atomics: 'readonly',
SharedArrayBuffer: 'readonly',
},
parser: '@typescript-eslint/parser',
parserOptions: {
requireConfigFile: false,
ecmaVersion: 2021,
sourceType: 'module',
extraFileExtensions: ['.svelte'],
},
plugins: ['boundaries', '@typescript-eslint'],
rules: {
'no-inner-declarations': 'off',
'svelte/no-at-html-tags': 'off',
'no-self-assign': 'off',
'svelte/no-unused-svelte-ignore': 'off',
'react/react-in-jsx-scope': 'off',
'@typescript-eslint/no-var-requires': 'off',
'react/jsx-key': 'off',
'svelte/no-unknown-property': 'off',
'@typescript-eslint/no-unused-vars': [
'warn',
{
args: 'after-used',
argsIgnorePattern: '^_',
ignoreRestSiblings: true,
varsIgnorePattern: '^_.*$',
},
],
},
ignorePatterns: ['!**/mock*.js', 'dist', 'node_modules', 'mocks', '!.lintstagedrc.json'],
settings: {
'svelte/ignore-styles': () => true,
'svelte/typescript': require('typescript'),
'boundaries/elements': [
{
type: 'templates',
pattern: 'example/**',
mode: 'file',
capture: ['category', 'elementName'],
},
],
},
};
Despite this, I’m getting the following warning:
import { store } from '@js/stores/globalStores';
$store = 'abc'; // Warning: 'store' is defined but never used. Allowed unused vars must match /^_.*$/u (@typescript-eslint/no-unused-vars)
Development Environment:
Svelte version: “4.2.17”
TypeScript version: “5.4.5”
ESLint version: “8.57.0”
typescript-eslint version: “7.1.0”,