Skip to content

attempt

INFO

この関数は互換性のために es-toolkit/compat からのみインポートできます。代替可能なネイティブ JavaScript API があるか、まだ十分に最適化されていないためです。

es-toolkit/compat からこの関数をインポートすると、lodash と完全に同じように動作します。

提供された引数で関数を実行します。 関数がエラーをスローした場合、エラーをキャッチして返します。

キャッチされたエラーがErrorのインスタンスでない場合、新しいErrorにラップします。

インターフェース

typescript
function attempt<F extends (...args: any[]) => any>(func: F, ...args: Parameters<F>): ReturnType<F> | Error;

パラメータ

  • func (F): 実行される関数。
  • args (...Parameters<F>): 関数に渡す引数。

戻り値

(ReturnType<F> | Error): 成功した場合は関数の戻り値、または例外がスローされた場合はエラー。

typescript
// Example 1: Successful execution
const result = attempt((x, y) => x + y, 2, 3);
console.log(result); // Output: 5

// Example 2: Function throws an error
const errorResult = attempt(() => {
  throw new Error('Something went wrong');
});
console.log(errorResult); // Output: Error: Something went wrong

// Example 3: Non-Error thrown
const nonErrorResult = attempt(() => {
  throw 'This is a string error';
});
console.log(nonErrorResult); // Output: Error: This is a string error

MIT ライセンスの下で配布されています。