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

MUI Autocomplete的onInputChange如何移除未使用的event、reason参数

MUI Autocomplete onInputChange未使用参数报TS(6133)错误解决方案

使用MUI Autocomplete组件的onInputChange事件回调时,若仅使用入参中的value,未使用的event、reason参数会被TypeScript、ESLint标记为灰显,抛出参数已声明但未读取的错误,可通过以下方法解决:

  • 下划线标记有意未使用的参数
    TypeScript和ESLint默认规则会自动识别以下划线_开头的参数为开发者有意保留、不需要使用的参数,不会触发未使用报错。注意JS回调参数是按位置传递的,不能直接跳过前置的event参数直接声明value,否则value变量实际接收到的是event对象,会导致逻辑异常。

修正后的代码示例:

onInputChange={async (
  _event: object,
  value: string,
  _reason: string,
) => {
  setProcedureCodeLength(value.length);
  if (value.length >= 3) {
    const codes = await getProcedureCodes(
      value,
      undefined,
    );
    setProcedureCodeOptions(codes);
  } else {
    setProcedureCodeOptions([]);
  }
}}

如果完全用不到reason参数,可以直接省略第三个参数的声明,不需要强行声明所有入参,代码可以进一步简化:

onInputChange={async (_event: object, value: string) => {
  setProcedureCodeLength(value.length);
  if (value.length >= 3) {
    const codes = await getProcedureCodes(value, undefined);
    setProcedureCodeOptions(codes);
  } else {
    setProcedureCodeOptions([]);
  }
}}
  • 调整全局校验规则(非必要不推荐)
    可以通过修改ESLintno-unused-vars规则、TypeScriptnoUnusedParameters配置,关闭未使用参数的报错提示。但该配置会全局生效,容易漏掉业务代码中其他真正冗余的参数声明,不建议使用。

开发提示:不需要手动为onInputChange的回调参数手写类型,直接使用MUI自带的类型推导即可自动匹配正确的参数类型,减少冗余的类型声明代码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 03:27:31