跳至主要内容

禁止抛出字面量

禁止将字面量作为异常抛出。

💭

此规则需要 类型信息 才能运行。

建议仅throw Error 对象本身,或使用 Error 对象作为基对象的自定义异常对象。Error 对象的基本优势在于它们会自动跟踪其构建和起源位置。

此规则限制了可以作为异常抛出的内容。

警告

此规则将重命名为 only-throw-error。当前名称 no-throw-literal 将在 typescript-eslint 的未来主要版本中删除。

此规则最初创建时仅阻止抛出字面量(因此得名),但现在已扩展为仅允许可能为 Error 对象的表达式。使用 allowThrowingAnyallowThrowingUnknown 选项,可以将其配置为仅允许抛出保证为 Error 实例的值。

选项

参见 eslint/no-throw-literal 选项.

如何使用

.eslintrc.cjs
module.exports = {
"rules": {
// Note: you must disable the base rule as it can report incorrect errors
"no-throw-literal": "off",
"@typescript-eslint/no-throw-literal": "error"
}
};

在游乐场中尝试此规则 ↗

何时不使用它

类型检查的 lint 规则比传统的 lint 规则更强大,但也需要配置 类型检查的 lint。如果您在启用类型检查的规则后遇到性能下降,请参见 性能故障排除

资源

ESLint 核心 中获取 ❤️。