prefer-promise-reject-errors
要求使用「錯誤」物件作為「承諾」拒絕理由。
🔒
延伸 "plugin:@typescript-eslint/strict-type-checked"
於 ESLint 組態 中將啟用此規則。
💭
此規則要求 類型資訊 才能執行。
此規則延伸了基礎 eslint/prefer-promise-reject-errors
規則。它使用類型資訊強制執行「承諾」僅拒絕「錯誤」物件。
範例
- ❌ 錯誤
- ✅ 正確
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"
}
};
在遊樂場中嘗試這條規則 ↗
何時不使用
經過類型檢查的 linter 規則比傳統的 linter 規則功能更強大,但需要設定經過類型檢查的 linting。如果你在啟用經過類型檢查的規則後遇到效能降低問題,請參閱效能疑難排解。