Require a specific member delimiter style for interfaces and type literals (member-delimiter-style)
Enforces a consistent member delimiter style in interfaces and type literals. There are three member delimiter styles primarily used in TypeScript:
Semicolon style (default, preferred in TypeScript).
Comma style (JSON style).
Line break (none) style.
The rule also enforces the presence (or absence) of the delimiter in the last member of the interface and/or type literal. Finally, this rule can enforce separate delimiter syntax for single line declarations.
Rule Details
This rule aims to standardize the way interface and type literal members are delimited.
Options
Default config:
multiline
config only applies to multiline interface
/type
definitions. singleline
config only applies to single line interface
/type
definitions. The two configs are entirely separate, and do not effect one another.
delimiter
delimiter
Accepts three values (or two for singleline
):
comma
- each member should be delimited with a comma (,
).semi
- each member should be delimited with a semicolon (;
).none
- each member should be delimited with nothing.NOTE - this is not an option for
singleline
because having no delimiter between members on a single line is a syntax error in TS.
requireLast
requireLast
Determines whether or not the last member in the interface
/type
should have a delimiter:
true
- the last member must have a delimiter.false
- the last member must not have a delimiter.
overrides
overrides
Allows you to specify options specifically for either interface
s or type
definitions / inline type
s.
For example, to require commas for type
s, and semicolons for multiline interface
s:
Examples
Examples of incorrect code for this rule with the default config:
Examples of correct code for this rule with the default config:
When Not To Use It
If you don't care about enforcing a consistent member delimiter in interfaces and type literals, then you will not need this rule.
Last updated