Skip to content
← Back to rules

typescript/no-empty-interface スタイル

An auto-fix is available for this rule.

何をするか

空のインターフェースの宣言を禁止します。

なぜ悪いのか

TypeScriptにおける空のインターフェースはほとんど意味がありません:非ヌル値であれば、いかなる値も {} に代入できます。 空のインターフェースを使用することは、しばしばプログラマの誤解やミスを示すものであり、たとえば {} の概念を理解していない、あるいはフィールドを記述し忘れたなどです。 このルールは、コード内に意味のあるインターフェースのみが宣言されることを保証することを目的としています。

このルールに違反する誤ったコードの例:

ts
interface Foo {}
interface Bar extends Foo {}

このルールに合致する正しいコードの例:

ts
interface Foo {
  member: string;
}
interface Bar extends Foo {
  member: string;
}

設定

このルールは以下のプロパティを持つ設定オブジェクトを受け入れます:

allowSingleExtends

type: boolean

デフォルト: false

true に設定された場合、単一のインターフェースを継承する空のインターフェースを許可します。

使い方

設定ファイルまたは CLI でこのルールを有効化するには、次のように使用できます:

json
{
  "rules": {
    "typescript/no-empty-interface": "error"
  }
}
bash
oxlint --deny typescript/no-empty-interface

参照