Skip to content

no-empty-interface

禁止声明空接口

为什么

在TypeScript中,空接口没有什么作用:任何非空值都可以赋值给{}

建议

接口应该包含至少一个成员,或者继承至少两个接口。

错误示例

ts
// 一个空接口
interface Foo {}

// 一个只有一个超类型的接口 (Bar === Foo)
interface Bar extends Foo {}
// 一个空接口
interface Foo {}

// 一个只有一个超类型的接口 (Bar === Foo)
interface Bar extends Foo {}

正确示例

ts
// 一个包含任意数量成员的接口
interface Foo {
  name: 'ranwawa';
}

// 和上面一样
interface Bar {
  age: 520;
}

// 一个有多于一个超类型的接口
// 在这种情况下,接口可以被用作交叉类型的替代。
interface Baz extends Foo, Bar {}
// 一个包含任意数量成员的接口
interface Foo {
  name: 'ranwawa';
}

// 和上面一样
interface Bar {
  age: 520;
}

// 一个有多于一个超类型的接口
// 在这种情况下,接口可以被用作交叉类型的替代。
interface Baz extends Foo, Bar {}

参考