禁用带内联注解的typescript-eslint插件规则

7xzttuei  于 2023-06-30  发布在  TypeScript
关注(0)|答案(3)|浏览(186)

我收到一个来自@typescript-eslint插件的eslint警告。
声明了“instance”,但从不读取其值。中文(简体)
VSCode建议使用以下行作为快速修复:

// eslint-disable-next-line @typescript-eslint/no-unused-vars

但是,添加这一行并没有什么区别,请参见下面:

**请注意:**我想使用此处显示的 *inline规则 * 来禁用仅针对 * 一个特定行 * 的警告。我不想对整个文件禁用它,也不想对整个项目禁用它。

PS:这是一个全新的Vite项目,使用了TypeScript和React。

vzgqcmou

vzgqcmou1#

我想我已经找到解决办法了。

1.)tsconfig

tsconfig.json中,添加以下内容。这将阻止在使用npm run build构建项目时出现编译器错误。
对于VSCode中受影响的代码行,您仍然会收到黄色下划线警告(如果您还没有做任何其他处理)。

"compilerOptions": {
    /* Linting */
    "noUnusedLocals": false,
    "noUnusedParameters": false,
  },

2.)eslintrc

.eslintrc.cjs中,添加以下内容。这将确保未使用的变量被标记为警告。替代选择是将它们标记为错误或完全忽略它们。请注意,我禁用了JS版本,但启用了TS版本。
同样,对于VSCode中受影响的代码行,您仍然会收到黄色下划线警告(如果您还没有做任何其他处理)。

rules: {
    "no-unused-vars": "off",
    "@typescript-eslint/no-unused-vars": "warn",
  }

3.)eslint-disable

在要禁用警告的文件中,添加内联规则。请注意,如果您想要更具体,则必须添加规则的TS版本,例如:

// eslint-disable-next-line @typescript-eslint/no-unused-vars
const [instance, setInstance] = useState<SwiperClass | null>(null);

或者,您可以简单地使用// eslint-disable-next-line而不指定规则。

nbysray5

nbysray52#

我建议在eslintrc文件中添加以下规则

rules: {
    ...,
    '@typescript-eslint/no-unused-vars': [
      'error',
      { argsIgnorePattern: '^_', varsIgnorePattern: '^_' },
    ],
}

有了这个,你可以用这种方式摆脱错误:

const [_instance, setInstance] = useState(null)
lstz6jyr

lstz6jyr3#

您可以通过从数组中解构第二个元素而不将第一个元素分配给变量来避免错误:

const [, setInstance] = useState<SwiperClass | null>(null);

我不确定您为什么不能抑制错误,但可能您需要禁用多个规则。内置的no-unused-vars rule是否适用于此?

// eslint-disable-next-line no-unused-vars, @typescript-eslint/no-unused-vars

Here's an answer有关禁用多个规则的语法。

相关问题