👀

未使用であることを示す変数 アンダーバー(_)【個人学習まとめ】

2024/12/29に公開

引数のアンダーバー(_)

JavaScriptにおいて、引数にアンダーバー(_)が使われることがある。
これは、未使用であることを示す。(自分は初めて見たが、一般的な使い方らしい)

new Promise((_,reject) => {
    setTimeout(() => {
        reject("制限時間!");
    },500);
});

Promiseは第一引数に成功状態を示すresolve、第二引数に失敗状態を示すrejectが必要。
上記の例では、タイムアウト後にPromiseを拒否したいだけなので、成功状態を示すresolveは必要ないためアンダーバー(_)を使って未使用であることを明示的にしている。

省略せずに書くなら次のようになる。

new Promise((resolve,reject) => {
    setTimeout(() => {
        reject("制限時間!");
    },500);
});

余談

TypeScriptでサンプルを作成。

function createTimeoutPromise(t: number): Promise<void>{
    return new Promise<void>((_, reject) =>{
        setTimeout(() =>{
            reject("制限時間");
        },t);
    });
}

さらに余談

動くサンプルつくった。
ただし、resolveの動きも見たかったのでアンダーバー(_)は使用していません。

function createPromise(t: number): Promise<string> {
  return new Promise<string>((resolve, reject) => {
    const isSucceed = Math.random() > 0.5; //0.5より大きければtrue
    setTimeout(() => {
      if (isSucceed) {
        resolve("成功!");
      } else {
        reject("失敗...");
      }
    }, t);
  });
}

async function main() {
  try {
    const result = await createPromise(100);
    console.log(result);
  } catch (error) {
    console.log(error);
  }
}

main();

Discussion