Movatterモバイル変換


[0]ホーム

URL:


Skip to main content

no-empty-interface

Disallow the declaration of empty interfaces.

Deprecated

This rule has been deprecated in favour of the more comprehensive@typescript-eslint/no-empty-object-type rule.

An empty interface in TypeScript does very little: any non-nullable value is assignable to{}.Using an empty interface is often a sign of programmer error, such as misunderstanding the concept of{} or forgetting to fill in fields.

This rule aims to ensure that only meaningful interfaces are declared in the code.

  • Flat Config
  • Legacy Config
eslint.config.mjs
exportdefault tseslint.config({
rules:{
"@typescript-eslint/no-empty-interface":"error"
}
});

Try this rule in the playground ↗

Examples

  • ❌ Incorrect
  • ✅ Correct
// an empty interface
interfaceFoo{}

// an interface with only one supertype (Bar === Foo)
interfaceBarextendsFoo{}

// an interface with an empty list of supertypes
interfaceBaz{}
Open in Playground

Options

This rule accepts the following options:

typeOptions=[
{
/** Whether to allow empty interfaces that extend a single other interface. */
allowSingleExtends?:boolean;
},
];

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

allowSingleExtends

Whether to allow empty interfaces that extend a single other interface. Default:false.

allowSingleExtends: true will silence warnings about extending a single interface without adding additional members.

When Not To Use It

If you don't care about having empty/meaningless interfaces, then you will not need this rule.

Related To

Resources


[8]ページ先頭

©2009-2025 Movatter.jp