禁止空接口
禁止声明空接口。
🎨
在 "plugin:@typescript-eslint/stylistic"
中扩展 ESLint 配置 将启用此规则。
🔧
此规则报告的一些问题可以通过 --fix
ESLint 命令行选项 自动修复。
💡
此规则报告的一些问题可以通过编辑器 建议 手动修复。
TypeScript 中的空接口作用很小:任何非空值都可以赋值给 {}
。使用空接口通常是程序员错误的迹象,例如误解 {}
的概念或忘记填写字段。
此规则旨在确保代码中只声明有意义的接口。
.eslintrc.cjs
module.exports = {
"rules": {
"@typescript-eslint/no-empty-interface": "error"
}
};
在游乐场中尝试此规则 ↗
示例
- ❌ 不正确
- ✅ 正确
// an empty interface
interface Foo {}
// an interface with only one supertype (Bar === Foo)
interface Bar extends Foo {}
// an interface with an empty list of supertypes
interface Baz {}
在游乐场中打开// an interface with any number of members
interface Foo {
name: string;
}
// same as above
interface Bar {
age: number;
}
// an interface with more than one supertype
// in this case the interface can be used as a replacement of an intersection type.
interface Baz extends Foo, Bar {}
在游乐场中打开选项
此规则接受以下选项
type Options = [
{
allowSingleExtends?: boolean;
},
];
const defaultOptions: Options = [{ allowSingleExtends: false }];
allowSingleExtends
allowSingleExtends: true
将静默扩展单个接口而不添加其他成员的警告
何时不使用它
如果您不关心空/无意义的接口,那么您将不需要此规则。