dot-notation
По возможности используйте точечную нотацию
Некоторые проблемы, выявляемые этим правилом, можно исправить автоматически с помощью параметра --fix командной строки
Это правило в настоящее время заморожено, и предложения по добавлению функций не принимаются.
В JavaScript для доступа к свойствам можно использовать точечную нотацию (foo.bar) или нотацию квадратных скобок (foo["bar"]). Однако точечную нотацию часто предпочитают, поскольку она проще для чтения, лаконичнее и лучше работает с агрессивными минификаторами JavaScript.
foo["bar"];
Описание правила
Это правило призвано обеспечивать согласованность кода и повышать его читаемость, поощряя использование точечной нотации везде, где это возможно. Поэтому оно выдает предупреждение при обнаружении необоснованного использования нотации квадратных скобок.
Примеры неправильного кода для этого правила:
/*eslint dot-notation: "error"*/
const x = foo[];
Примеры правильного кода для этого правила:
/*eslint dot-notation: "error"*/
const x = foo.bar;
const y = 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 }]*/
const foo = { "class": "CS 101" }
const 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 будут недопустимы. Если указать allowPattern для правила dot-notation, к таким свойствам в snake_case можно будет обращаться с помощью нотации квадратных скобок.
Примеры неправильного кода для примера параметра { "allowPattern": "^[a-z]+(_[a-z]+)+$" } (шаблон для поиска имен свойств в snake_case):
/*eslint dot-notation: ["error", { "allowPattern": "^[a-z]+(_[a-z]+)+$" }]*/
const data = {};
data[] = 42;
Примеры правильного кода для примера параметра { "allowPattern": "^[a-z]+(_[a-z]+)+$" } (шаблон для поиска имен свойств в snake_case):
/*eslint dot-notation: ["error", { "allowPattern": "^[a-z]+(_[a-z]+)+$" }]*/
const data = {};
data["foo_bar"] = 42;
Версия
Это правило добавлено в ESLint v0.0.7.
Ресурсы
© OpenJS Foundation and other contributors
Licensed under the MIT License.
https://eslint.org/docs/latest/rules/dot-notation