For AI agents: the complete documentation index is available at /tc39-atlas/llms.txt, the full documentation bundle is available at /tc39-atlas/llms-full.txt, and this page is available as Markdown at /tc39-atlas/proposals/year/pending/proposal-unused-function-parameters.md.
  • 简体中文
  • Unused Function Parameters ?

    中文标题:未使用的函数参数

    提案概览
    提案速览

    该提案解决了 JavaScript 中未使用函数参数的问题,当前需要像 _ 这样的占位符名称,可能与现有代码或 linter 冲突。它探索了三种主要解决方案:省略(空参数槽)、占位符语法(例如 ?*)以及带有早期错误规则的占位符标识符(例如 _)。该提案处于早期探索阶段,提出了多种设计选项,尚未选定方向。

    Note

    以下 README 来自上游仓库,其中的阶段或状态标注可能滞后;当前信息以提案概览为准。

    未使用的函数参数

    问题

    doSomething((unused1, unused2, somethingUseful) => {
      doSomethingWith(somethingUseful);
    });
    
    doSomething((_, __, somethingUseful) => {
      doSomethingWith(somethingUseful);
    });

    解决方案

    省略

    doSomething(( , , somethingUseful) => {
      doSomethingWith(somethingUseful);
    });
    • 与现有的解构匹配
      • ([, c]) 已经是有效的
    • 有些人可能会说它看起来很奇怪

    占位符语法

    doSomething((?, ?, somethingUseful) => {
      doSomethingWith(somethingUseful);
    });
    
    doSomething((*, *, somethingUseful) => {
      doSomethingWith(somethingUseful);
    });
    
    // 等等。
    • 最明确,清楚地“占用”了一个参数而不绑定它
    • 需要更多语法

    占位符标识符

    doSomething((_, _, somethingUseful) => {
      doSomethingWith(somethingUseful);
    });
    
    doSomething((_, _, somethingUseful) => {
      print(_); // 标识符引用:`_` 早期错误?
      doSomethingWith(somethingUseful);
    });
    • 可以说最自然,其他语言使用这种方式(C#、Rust 等)
    • 任何有效的标识符都已经是有效的标识符,可能与现有代码冲突