member-delimiter-style
TypeScript 允许在接口和类型别名中的成员之间使用三种分隔符
ts
interface Foo {
// Semicolons (default, preferred in TypeScript):
name: string;
// Commas (JSON-like):
name: string,
// Line breaks (none):
name: string
}
为了代码可读性,通常最好在代码库中始终使用相同的样式。
此规则强制执行保持一种可配置的代码样式。它还可以标准化构造中最后一个成员中分隔符的存在(或不存在),以及单行声明的单独分隔符语法。
选项
默认配置
json
{
"multiline": {
"delimiter": "semi",
"requireLast": true
},
"singleline": {
"delimiter": "semi",
"requireLast": false
},
"multilineDetection": "brackets"
}
multiline
配置仅适用于多行 interface
/type
定义。singleline
配置仅适用于单行 interface
/type
定义。这两个配置是完全独立的,不会相互影响。
multilineDetection
确定什么算作多行
"brackets"
(默认)类型或接口中的任何换行符都使其成为多行。"last-member"
如果接口的最后一个成员与最后一个括号在同一行,则将其计为单行。
delimiter
接受三个值(或 singleline
的两个值)
comma
- 每个成员都应该用逗号 (,
) 分隔。semi
- 每个成员都应该用分号 (;
) 分隔。none
- 每个成员都应该用空分隔。
:::note none
不是 singleline
的选项,因为在单行上成员之间没有分隔符在 TS 中是语法错误。 ::
requireLast
确定 interface
/type
中的最后一个成员是否应该有分隔符
true
- 最后一个成员**必须**有分隔符。false
- 最后一个成员**不能**有分隔符。
overrides
允许您为interface
或type
定义/内联type
指定特定选项。
例如,要求type
使用逗号,而多行interface
使用分号。
json
{
"multiline": {
"delimiter": "comma",
"requireLast": true
},
"singleline": {
"delimiter": "comma",
"requireLast": true
},
"overrides": {
"interface": {
"multiline": {
"delimiter": "semi",
"requireLast": true
}
}
}
}
示例
使用默认配置的此规则的代码示例
ts
/*eslint @stylistic/ts/member-delimiter-style: "error"*/
// missing semicolon delimiter
interface Foo {
name: string
greet(): string
}
// using incorrect delimiter
interface Bar {
name: string,
greet(): string,
}
// missing last member delimiter
interface Baz {
name: string;
greet(): string
}
// incorrect delimiter
type FooBar = { name: string, greet(): string }
// last member should not have delimiter
type FooBar = { name: string; greet(): string; }
ts
/*eslint @stylistic/ts/member-delimiter-style: "error"*/
interface Foo {
name: string;
greet(): string;
}
interface Foo { name: string }
type Bar = {
name: string;
greet(): string;
}
type Bar = { name: string }
type FooBar = { name: string; greet(): string }
何时不使用它
如果您不关心在接口和类型字面量中强制使用一致的成员分隔符,那么您将不需要此规则。
正确
错误