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

如何配置ESLint jsdoc规则识别带下划线前缀的未使用参数

解决方案

冲突本质是两个规则的校验逻辑差:未使用参数规则允许前置下划线标记忽略检查,而eslint-plugin-jsdoc的参数名校验默认要求JSDoc声明的参数名和函数实际参数名完全一致。两种方案都可以在不禁用任何规则的前提下满足要求:


方案1:无配置代码调整(推荐)

不需要修改任何ESLint规则,只要在空实现中用void关键字显式标记参数为故意不使用即可,无需给参数加下划线前缀。TS、JS的未使用参数校验规则都会认可这种标记方式,不会抛出报错。
修改后的代码如下:

/**
 * Set the outer alternative number for this context node. Default
 *  implementation does nothing to avoid backing field overhead for
 *  trees that don't need it.  Create
 *  a subclass of ParserRuleContext with backing field and set
 *  option contextSuperClass.
 *
 * @param altNumber The alt number to set.
 */
public setAltNumber = (altNumber: number): void => {
  void altNumber;
};

该方案的优势:

  • 参数名和JSDoc声明完全一致,不会触发任何JSDoc参数校验错误
  • void altNumber属于无副作用的标记语句,会被编译压缩工具完全优化,不会产生额外运行时开销
  • 语义明确,其他开发者可以直接识别出这是接口定义要求保留、当前空实现故意不使用的参数,子类重写时也不需要额外调整参数名

方案2:调整JSDoc规则配置适配下划线前缀

如果希望保留前置下划线的参数命名习惯,可以调整jsdoc/check-param-names规则配置,让其自动忽略参数名的前置下划线,匹配JSDoc中不带下划线的同名参数。

注意:负责校验JSDoc参数名和实际参数名是否匹配的是jsdoc/check-param-names规则,不是jsdoc/require-param;jsdoc/require-param仅负责检查是否漏写参数的JSDoc声明,不需要额外修改配置。

在ESLint配置文件中添加如下规则配置即可:

// .eslintrc.js 配置示例
module.exports = {
  rules: {
    // 原有未使用参数规则配置保持不变,例如:
    // "@typescript-eslint/no-unused-vars": ["error", { argsIgnorePattern: "^_" }],
    "jsdoc/check-param-names": ["error", {
      allowLeadingUnderscore: true, // 允许匹配时忽略参数名前置下划线
    }],
  }
};

配置完成后,原有代码(参数为_altNumber,JSDoc写@param altNumber)会直接通过两个规则的校验,不需要修改业务代码。


内容的提问来源于stack exchange,提问作者Mike Lischke

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 17:15:44