跳至主要内容

优先使用 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 中打开

选项

参见 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。如果在启用类型检查的规则后遇到性能下降,请参见 性能故障排除

资源

来自 ESLint 核心 的 ❤️。