# dot-notation
尽可能强制使用点表示法
一些该规则报告的问题可以通过 --fix 命令行选项 自动修复
在 JavaScript 中,可以使用点表示法 (foo.bar
) 或方括号表示法 (foo["bar"]
) 访问属性。但是,点表示法通常更受欢迎,因为它更易于阅读、不那么冗长,并且可以更好地与激进的 JavaScript 最小化程序配合使用。
foo["bar"];
# 规则详情
此规则旨在通过鼓励尽可能使用点符号样式来保持代码一致性并提高代码可读性。因此,它会在遇到不必要的方括号符号使用时发出警告。
此规则的错误代码示例:
/*eslint dot-notation: "error"*/
var x = foo["bar"];
此规则的正确代码示例:
/*eslint dot-notation: "error"*/
var x = foo.bar;
var x = foo[bar]; // Property name is a variable, square-bracket notation required
# 选项
此规则接受单个选项参数:
- 将
allowKeywords
选项设置为false
(默认为true
)以遵循 ECMAScript 版本 3 兼容样式,避免保留字属性的点表示法。 - 将
allowPattern
选项设置为正则表达式字符串,以允许对匹配模式的属性名称使用括号表示法(默认情况下,不测试任何模式)。
# allowKeywords
{ "allowKeywords": false }
选项的正确代码示例:
/*eslint dot-notation: ["error", { "allowKeywords": false }]*/
var foo = { "class": "CS 101" }
var x = foo["class"]; // Property name is a reserved word, square-bracket notation required
{ "allowKeywords": false }
选项的附加正确代码示例:
/*eslint dot-notation: ["error", { "allowKeywords": false }]*/
class C {
#in;
foo() {
this.#in; // Dot notation is required for private identifiers
}
}
# allowPattern
例如,在准备要发送到外部 API 的数据时,通常需要使用包含下划线的属性名称。如果 camelcase
规则生效,则不允许使用这些 snake case
属性。通过向 dot-notation
规则提供 allowPattern
,可以使用括号表示法访问这些蛇形案例属性。
示例 { "allowPattern": "^[a-z]+(_[a-z]+)+$" }
选项的正确代码示例:
/*eslint camelcase: "error"*/
/*eslint dot-notation: ["error", { "allowPattern": "^[a-z]+(_[a-z]+)+$" }]*/
var data = {};
data.foo_bar = 42;
var data = {};
data["fooBar"] = 42;
var data = {};
data["foo_bar"] = 42; // no warning