优先使用 Promise 拒绝错误
要求使用 Error 对象作为 Promise 拒绝原因。
🔒
在 "plugin:@typescript-eslint/strict-type-checked"
中扩展 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);
});
在 Playground 中打开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());
});
在 Playground 中打开选项
参见 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"
}
};
在 Playground 中尝试此规则 ↗
何时不使用
类型检查的 lint 规则比传统的 lint 规则更强大,但也需要配置 类型检查的 lint。如果在启用类型检查的规则后遇到性能下降,请参见 性能故障排除。