Spec-Zone.ru › ESLint

new-cap

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

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

var 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 }]*/

var friend = new person();

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

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

var friend = new Person();

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

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

var friend = new person();

capIsNew

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

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

var colleague = Person();

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

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

var colleague = new Person();

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

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

var colleague = Person();

newIsCapИсключения

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

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

var events = require('events');

var emitter = new events();

newIsCapИсключениеШаблон

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

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

var friend = new person.acquaintance();

var bestFriend = new person.friend();

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

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

var friend = new person.bar();

capIsNewИсключения

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

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

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

capIsNewИсключениеШаблон

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

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

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

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

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

foo.Bar();

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

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

var x = Foo(42);

var y = Foobar(42);

var z = Foo.Bar(42);

Свойства

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

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

var friend = new person.acquaintance();

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

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

var friend = new person.Acquaintance();

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

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

var 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