new-cap
Требуется, чтобы имена конструкторов начинались с большой буквы
Оператор new в JavaScript создает новый экземпляр определенного типа объекта. Этот тип объекта представлен функцией-конструктором. Поскольку функции-конструкторы — это обычные функции, единственным определяющим признаком является то, что new используется в качестве части вызова. Встроенные функции JavaScript начинаются с большой буквы, чтобы отличить те функции, которые должны использоваться в качестве конструкторов, от функций, которые не являются таковыми. Многие руководства по стилю рекомендуют следовать этой модели, чтобы легче определить, какие функции следует использовать в качестве конструкторов.
var friend = new Person();
Подробное описание правила
Это правило требует, чтобы имена конструкторов начинались с большой буквы. Некоторые встроенные идентификаторы освобождены от этого правила. Эти идентификаторы:
ArrayBooleanDateErrorFunctionNumberObjectRegExpStringSymbolBigInt
Примеры правильного кода для этого правила:
/*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 } по умолчанию:
/*eslint new-cap: ["error", { "newIsCap": true }]*/
var friend = new ();
Примеры правильного кода для этого правила с параметром { "newIsCap": true } по умолчанию:
/*eslint new-cap: ["error", { "newIsCap": true }]*/
var friend = new Person();
Примеры правильного кода для этого правила с параметром { "newIsCap": false }:
/*eslint new-cap: ["error", { "newIsCap": false }]*/
var friend = new person();
capIsNew
Примеры неправильного кода для этого правила с параметром { "capIsNew": true } по умолчанию:
/*eslint new-cap: ["error", { "capIsNew": true }]*/
var colleague = ();
Примеры правильного кода для этого правила с параметром { "capIsNew": true } по умолчанию:
/*eslint new-cap: ["error", { "capIsNew": true }]*/
var colleague = new Person();
Примеры правильного кода для этого правила с параметром { "capIsNew": false }:
/*eslint new-cap: ["error", { "capIsNew": false }]*/
var colleague = Person();
newIsCapИсключения
Примеры дополнительного правильного кода для этого правила с параметром { "newIsCapExceptions": ["events"] }:
/*eslint new-cap: ["error", { "newIsCapExceptions": ["events"] }]*/
var events = require('events');
var emitter = new events();
newIsCapИсключениеШаблон
Примеры дополнительного правильного кода для этого правила с параметром { "newIsCapExceptionPattern": "^person\\.." }:
/*eslint new-cap: ["error", { "newIsCapExceptionPattern": "^person\\.." }]*/
var friend = new person.acquaintance();
var bestFriend = new person.friend();
Примеры дополнительного правильного кода для этого правила с параметром { "newIsCapExceptionPattern": "\\.bar$" }:
/*eslint new-cap: ["error", { "newIsCapExceptionPattern": "\\.bar$" }]*/
var friend = new person.bar();
capIsNewИсключения
Примеры дополнительного правильного кода для этого правила с параметром { "capIsNewExceptions": ["Person"] }:
/*eslint new-cap: ["error", { "capIsNewExceptions": ["Person"] }]*/
function foo(arg) {
return Person(arg);
}
capIsNewИсключениеШаблон
Примеры дополнительного правильного кода для этого правила с параметром { "capIsNewExceptionPattern": "^person\\.." }:
/*eslint new-cap: ["error", { "capIsNewExceptionPattern": "^person\\.." }]*/
var friend = person.Acquaintance();
var bestFriend = person.Friend();
Примеры дополнительного правильного кода для этого правила с параметром { "capIsNewExceptionPattern": "\\.Bar$" }:
/*eslint new-cap: ["error", { "capIsNewExceptionPattern": "\\.Bar$" }]*/
foo.Bar();
Примеры дополнительного правильного кода для этого правила с параметром { "capIsNewExceptionPattern": "^Foo" }:
/*eslint new-cap: ["error", { "capIsNewExceptionPattern": "^Foo" }]*/
var x = Foo(42);
var y = Foobar(42);
var z = Foo.Bar(42);
Свойства
Примеры неправильного кода для этого правила с параметром { "properties": true } по умолчанию:
/*eslint new-cap: ["error", { "properties": true }]*/
var friend = new person.();
Примеры правильного кода для этого правила с параметром { "properties": true } по умолчанию:
/*eslint new-cap: ["error", { "properties": true }]*/
var friend = new person.Acquaintance();
Примеры правильного кода для этого правила с параметром { "properties": false }:
/*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