跳至主要内容

禁止空接口

禁止声明空接口。

🎨

"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 {}
在游乐场中打开

选项

此规则接受以下选项

type Options = [
{
allowSingleExtends?: boolean;
},
];

const defaultOptions: Options = [{ allowSingleExtends: false }];

allowSingleExtends

allowSingleExtends: true 将静默扩展单个接口而不添加其他成员的警告

何时不使用它

如果您不关心空/无意义的接口,那么您将不需要此规则。

资源