Promise拒否理由としてErrorオブジェクトの使用を必須にする
Promiseの拒否理由としてErrorオブジェクトの使用を要求します。
🔒
拡張 "plugin:@typescript-eslint/"厳密な型チェック"
を ESLint設定 で有効にすると、このルールが有効になります。
💭
このルールを実行するには 型情報 が必要です。
このルールは基本の eslint/prefer-promise-reject-errors
ルールを拡張します。型情報を使用して、Promise
が Error
オブジェクトのみで拒否されるようにします。
例
- ❌ 間違い
- ✅ 正しい
Promise.reject('error');
const err = new Error();
Promise.reject('an ' + err);
new Promise((resolve, reject) => reject('error'));
new Promise((resolve, reject) => {
const err = new Error();
reject('an ' + err);
});
プレイグラウンドで開くPromise.reject(new Error());
class CustomError extends Error {
// ...
}
Promise.reject(new CustomError());
new Promise((resolve, reject) => reject(new Error()));
new Promise((resolve, reject) => {
class CustomError extends Error {
// ...
}
return reject(new CustomError());
});
プレイグラウンドで開くオプション
eslint/prefer-promise-reject-errors
オプションを参照してください。
使用方法
.eslintrc.cjs
module.exports = {
"rules": {
// Note: you must disable the base rule as it can report incorrect errors
"prefer-promise-reject-errors": "off",
"@typescript-eslint/prefer-promise-reject-errors": "error"
}
};
プレイグラウンドでこのルールを試す ↗
使用しない場合
型チェックされたlintルールは、従来のlintルールよりも強力ですが、型チェックされたlintingを設定する必要があります。型チェックルールを有効にした後にパフォーマンスの低下が発生した場合は、パフォーマンストラブルシューティングを参照してください。