interface
or type
(consistent-type-definitions)There are two ways to define a type.
// type alias type T1 = { a: string; b: number; }; // interface keyword interface T2 { a: string; b: number; }
This rule accepts one string option:
"interface"
: enforce using interface
s for object type definitions."type"
: enforce using type
s for object type definitions.For example:
{ // Use type for object definitions "@typescript-eslint/consistent-type-definitions": ["error", "type"] }
Examples of incorrect code with interface
option.
type T = { x: number };
Examples of correct code with interface
option.
type T = string; type Foo = string | {}; interface T { x: number; }
Examples of incorrect code with type
option.
interface T { x: number; }
Examples of correct code with type
option.
type T = { x: number };
If you specifically want to use an interface or type literal for stylistic reasons, you can disable this rule.