Spec-Zone.ru › ESLint

new-cap

Требовать, чтобы имена конструкторов начинались с заглавной буквы

Оператор new в JavaScript создает новый экземпляр объекта определенного типа. Этот тип объекта представлен функцией-конструктором. Поскольку функции-конструкторы — это обычные функции, единственное их отличительное свойство состоит в том, что new используется при вызове. Встроенные функции JavaScript начинаются с заглавной буквы, чтобы отличать функции, используемые в качестве конструкторов, от остальных функций. Во многих руководствах по стилю рекомендуется следовать этому шаблону, чтобы было легче определить, какие функции используются в качестве конструкторов.

const friend = new Person();

Подробное описание правила

Это правило требует, чтобы имена конструкторов начинались с заглавной буквы. Некоторые встроенные идентификаторы являются исключениями из этого правила. Это следующие идентификаторы:

  • Array
  • Boolean
  • Date
  • Error
  • Function
  • Number
  • Object
  • RegExp
  • String
  • Symbol
  • BigInt

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

Открыть в Playground
/*eslint new-cap: "error"*/

function foo(arg) {
    return Boolean(arg);
}

Параметры

Это правило принимает параметр-объект:

  • "newIsCap": true (по умолчанию) требует, чтобы все операторы new вызывались с функциями, начинающимися с заглавной буквы.
  • "newIsCap": false позволяет вызывать операторы new с функциями, начинающимися со строчной или заглавной буквы.
  • "capIsNew": true (по умолчанию) требует, чтобы все функции, начинающиеся с заглавной буквы, вызывались с операторами new.
  • "capIsNew": false позволяет вызывать функции, начинающиеся с заглавной буквы, без операторов new.
  • "newIsCapExceptions" разрешает вызывать указанные имена функций, начинающиеся со строчной буквы, с оператором new.
  • "newIsCapExceptionPattern" разрешает вызывать любые имена функций, начинающиеся со строчной буквы и соответствующие указанному регулярному выражению, с оператором new.
  • "capIsNewExceptions" разрешает вызывать указанные имена функций, начинающиеся с заглавной буквы, без оператора new.
  • "capIsNewExceptionPattern" разрешает вызывать любые имена функций, начинающиеся с заглавной буквы и соответствующие указанному регулярному выражению, без оператора new.
  • "properties": true (по умолчанию) включает проверки свойств объектов.
  • "properties": false отключает проверки свойств объектов.

newIsCap

Примеры неправильного кода для этого правила с параметром { "newIsCap": true } по умолчанию:

Открыть в Playground
/*eslint new-cap: ["error", { "newIsCap": true }]*/

const friend = new person();

Примеры правильного кода для этого правила с параметром { "newIsCap": true } по умолчанию:

Открыть в Playground
/*eslint new-cap: ["error", { "newIsCap": true }]*/

const friend = new Person();

Примеры правильного кода для этого правила с параметром { "newIsCap": false }:

Открыть в Playground
/*eslint new-cap: ["error", { "newIsCap": false }]*/

const friend = new person();

capIsNew

Примеры неправильного кода для этого правила с параметром { "capIsNew": true } по умолчанию:

Открыть в Playground
/*eslint new-cap: ["error", { "capIsNew": true }]*/

const colleague = Person();

Примеры правильного кода для этого правила с параметром { "capIsNew": true } по умолчанию:

Открыть в Playground
/*eslint new-cap: ["error", { "capIsNew": true }]*/

const colleague = new Person();

Примеры правильного кода для этого правила с параметром { "capIsNew": false }:

Открыть в Playground
/*eslint new-cap: ["error", { "capIsNew": false }]*/

const colleague = Person();

newIsCapExceptions

Примеры дополнительного правильного кода для этого правила с параметром { "newIsCapExceptions": ["events"] }:

Открыть в Playground
/*eslint new-cap: ["error", { "newIsCapExceptions": ["events"] }]*/

const events = require('events');

const emitter = new events();

newIsCapExceptionPattern

Примеры дополнительного правильного кода для этого правила с параметром { "newIsCapExceptionPattern": "^person\\.." }:

Открыть в Playground
/*eslint new-cap: ["error", { "newIsCapExceptionPattern": "^person\\.." }]*/

const friend = new person.acquaintance();

const bestFriend = new person.friend();

Примеры дополнительного правильного кода для этого правила с параметром { "newIsCapExceptionPattern": "\\.bar$" }:

Открыть в Playground
/*eslint new-cap: ["error", { "newIsCapExceptionPattern": "\\.bar$" }]*/

const friend = new person.bar();

capIsNewExceptions

Примеры дополнительного правильного кода для этого правила с параметром { "capIsNewExceptions": ["Person"] }:

Открыть в Playground
/*eslint new-cap: ["error", { "capIsNewExceptions": ["Person"] }]*/

function foo(arg) {
    return Person(arg);
}

capIsNewExceptionPattern

Примеры дополнительного правильного кода для этого правила с параметром { "capIsNewExceptionPattern": "^person\\.." }:

Открыть в Playground
/*eslint new-cap: ["error", { "capIsNewExceptionPattern": "^person\\.." }]*/

const friend = person.Acquaintance();
const bestFriend = person.Friend();

Примеры дополнительного правильного кода для этого правила с параметром { "capIsNewExceptionPattern": "\\.Bar$" }:

Открыть в Playground
/*eslint new-cap: ["error", { "capIsNewExceptionPattern": "\\.Bar$" }]*/

foo.Bar();

Примеры дополнительного правильного кода для этого правила с параметром { "capIsNewExceptionPattern": "^Foo" }:

Открыть в Playground
/*eslint new-cap: ["error", { "capIsNewExceptionPattern": "^Foo" }]*/

const x = Foo(42);

const y = Foobar(42);

const z = Foo.Bar(42);

properties

Примеры неправильного кода для этого правила с параметром { "properties": true } по умолчанию:

Открыть в Playground
/*eslint new-cap: ["error", { "properties": true }]*/

const friend = new person.acquaintance();

Примеры правильного кода для этого правила с параметром { "properties": true } по умолчанию:

Открыть в Playground
/*eslint new-cap: ["error", { "properties": true }]*/

const friend = new person.Acquaintance();

Примеры правильного кода для этого правила с параметром { "properties": false }:

Открыть в Playground
/*eslint new-cap: ["error", { "properties": false }]*/

const friend = new person.acquaintance();

Когда не следует использовать это правило

Если принятые у вас соглашения не требуют, чтобы имена конструкторов начинались с заглавной буквы, или не требуют использовать функции с заглавной буквы только в качестве конструкторов, отключите это правило.

Версия

Это правило появилось в ESLint v0.0.3-0.

Ресурсы

  • Исходный код правила
  • Исходный код тестов

© OpenJS Foundation and other contributors
Licensed under the MIT License.
https://eslint.org/docs/latest/rules/new-cap

Spec-Zone.ru

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