Spec-Zone.ru › ESLint

dot-notation

По возможности используйте точечную нотацию

🔧 Можно исправить

Некоторые проблемы, выявляемые этим правилом, можно исправить автоматически с помощью параметра --fix командной строки

❄️ Заморожено

Это правило в настоящее время заморожено, и предложения по добавлению функций не принимаются.

В JavaScript для доступа к свойствам можно использовать точечную нотацию (foo.bar) или нотацию квадратных скобок (foo["bar"]). Однако точечную нотацию часто предпочитают, поскольку она проще для чтения, лаконичнее и лучше работает с агрессивными минификаторами JavaScript.

foo["bar"];

Описание правила

Это правило призвано обеспечивать согласованность кода и повышать его читаемость, поощряя использование точечной нотации везде, где это возможно. Поэтому оно выдает предупреждение при обнаружении необоснованного использования нотации квадратных скобок.

Примеры неправильного кода для этого правила:

Открыть в Playground
/*eslint dot-notation: "error"*/

const x = foo["bar"];

Примеры правильного кода для этого правила:

Открыть в Playground
/*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 }:

Открыть в Playground
/*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 }:

Открыть в Playground
/*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):

Открыть в Playground
/*eslint dot-notation: ["error", { "allowPattern": "^[a-z]+(_[a-z]+)+$" }]*/

const data = {};
data["fooBar"] = 42;

Примеры правильного кода для примера параметра { "allowPattern": "^[a-z]+(_[a-z]+)+$" } (шаблон для поиска имен свойств в snake_case):

Открыть в Playground
/*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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API