禁止抛出字面量
禁止将字面量作为异常抛出。
💭
此规则需要 类型信息 才能运行。
建议仅throw
Error
对象本身,或使用 Error
对象作为基对象的自定义异常对象。Error
对象的基本优势在于它们会自动跟踪其构建和起源位置。
此规则限制了可以作为异常抛出的内容。
警告
此规则将重命名为 only-throw-error
。当前名称 no-throw-literal
将在 typescript-eslint 的未来主要版本中删除。
此规则最初创建时仅阻止抛出字面量(因此得名),但现在已扩展为仅允许可能为 Error
对象的表达式。使用 allowThrowingAny
和 allowThrowingUnknown
选项,可以将其配置为仅允许抛出保证为 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。如果您在启用类型检查的规则后遇到性能下降,请参见 性能故障排除。