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