eslint/new-cap Style
작동 방식
이 규칙은 생성자 이름이 대문자로 시작하도록 요구합니다.
왜 문제가 되는가?
자바스크립트의 new 연산자는 특정 유형의 객체의 새 인스턴스를 생성합니다.
그러한 객체 유형은 생성자 함수로 표현됩니다.
생성자 함수는 일반 함수와 동일하므로, 호출 시 new가 사용되는 것이 유일한 구분 요소입니다.
내장 자바스크립트 함수는 생성자로 사용될 함수와 그렇지 않은 함수를 구별하기 위해 대문자로 시작합니다.
많은 스타일 가이드에서 이러한 패턴을 따르도록 권장하며, 이를 통해 어떤 함수가 생성자로 사용되어야 하는지 쉽게 확인할 수 있습니다.
경고: newIsCapExceptionPattern 및 capIsNewExceptionPattern 옵션은 rust regex 문법을 사용하여 구현되었습니다.
여기에는 많은 자바스크립트 기능이 지원되지 않습니다 (전방 탐색, 후방 탐색 등).
예시
이 규칙에 대한 부적절한 코드 예시:
function foo(arg) {
return Boolean(arg);
}기본 설정 { "newIsCap": true }를 사용했을 때의 부적절한 코드 예시:
/* new-cap: ["error", { "newIsCap": true }] */
var friend = new person();기본 설정 { "newIsCap": true }를 사용했을 때의 적절한 코드 예시:
/* new-cap: ["error", { "newIsCap": true }] */
var friend = new Person();{ "newIsCap": false } 옵션을 사용했을 때의 적절한 코드 예시:
/* new-cap: ["error", { "newIsCap": false }] */
var friend = new person();기본 설정 { "capIsNew": true }를 사용했을 때의 부적절한 코드 예시:
/* new-cap: ["error", { "capIsNew": true }] */
var colleague = Person();기본 설정 { "capIsNew": true }를 사용했을 때의 적절한 코드 예시:
/* new-cap: ["error", { "capIsNew": true }] */
var colleague = new Person();{ "capIsNew": false } 옵션을 사용했을 때의 적절한 코드 예시:
/* new-cap: ["error", { "capIsNew": false }] */
var colleague = Person();{ "newIsCapExceptions": ["events"] } 옵션을 사용했을 때의 추가 적절한 코드 예시:
/* new-cap: ["error", { "newIsCapExceptions": ["events"] }] */
var events = require("events");
var emitter = new events();{ "newIsCapExceptionPattern": "^person\\.." } 옵션을 사용했을 때의 추가 적절한 코드 예시:
/* new-cap: ["error", { "newIsCapExceptionPattern": "^person\\.." }] */
var friend = new person.acquaintance();
var bestFriend = new person.friend();{ "newIsCapExceptionPattern": "\\.bar$" } 옵션을 사용했을 때의 추가 적절한 코드 예시:
/* new-cap: ["error", { "newIsCapExceptionPattern": "\\.bar$" }] */
var friend = new person.bar();{ "capIsNewExceptions": ["Person"] } 옵션을 사용했을 때의 추가 적절한 코드 예시:
::: correct
/* new-cap: ["error", { "capIsNewExceptions": ["Person"] }] */
function foo(arg) {
return Person(arg);
}{ "capIsNewExceptionPattern": "^person\\.." } 옵션을 사용했을 때의 추가 적절한 코드 예시:
/* new-cap: ["error", { "capIsNewExceptionPattern": "^person\\.." }] */
var friend = person.Acquaintance();
var bestFriend = person.Friend();{ "capIsNewExceptionPattern": "\\.Bar$" } 옵션을 사용했을 때의 추가 적절한 코드 예시:
/* new-cap: ["error", { "capIsNewExceptionPattern": "\\.Bar$" }] */
foo.Bar();{ "capIsNewExceptionPattern": "^Foo" } 옵션을 사용했을 때의 추가 적절한 코드 예시:
/* new-cap: ["error", { "capIsNewExceptionPattern": "^Foo" }] */
var x = Foo(42);
var y = Foobar(42);
var z = Foo.Bar(42);기본 설정 { "properties": true }를 사용했을 때의 부적절한 코드 예시:
/* new-cap: ["error", { "properties": true }] */
var friend = new person.acquaintance();기본 설정 { "properties": true }를 사용했을 때의 적절한 코드 예시:
/* new-cap: ["error", { "properties": true }] */
var friend = new person.Acquaintance();{ "properties": false } 옵션을 사용했을 때의 적절한 코드 예시:
/* new-cap: ["error", { "properties": false }] */
var friend = new person.acquaintance();기본 설정 { "newIsCap": true }를 사용했을 때의 부적절한 코드 예시:
/* new-cap: ["error", { "newIsCap": true }] */
var friend = new person();기본 설정 { "newIsCap": true }를 사용했을 때의 적절한 코드 예시:
/* new-cap: ["error", { "newIsCap": true }] */
var friend = new Person();{ "newIsCap": false } 옵션을 사용했을 때의 적절한 코드 예시:
/* new-cap: ["error", { "newIsCap": false }] */
var friend = new person();기본 설정 { "capIsNew": true }를 사용했을 때의 부적절한 코드 예시:
/* new-cap: ["error", { "capIsNew": true }] */
var colleague = Person();기본 설정 { "capIsNew": true }를 사용했을 때의 적절한 코드 예시:
/* new-cap: ["error", { "capIsNew": true }] */
var colleague = new Person();{ "capIsNew": false } 옵션을 사용했을 때의 적절한 코드 예시:
/* new-cap: ["error", { "capIsNew": false }] */
var colleague = Person();{ "newIsCapExceptions": ["events"] } 옵션을 사용했을 때의 추가 적절한 코드 예시:
/* new-cap: ["error", { "newIsCapExceptions": ["events"] }] */
var events = require("events");
var emitter = new events();{ "newIsCapExceptionPattern": "^person\\.." } 옵션을 사용했을 때의 추가 적절한 코드 예시:
/* new-cap: ["error", { "newIsCapExceptionPattern": "^person\\.." }] */
var friend = new person.acquaintance();
var bestFriend = new person.friend();{ "newIsCapExceptionPattern": "\\.bar$" } 옵션을 사용했을 때의 추가 적절한 코드 예시:
/* new-cap: ["error", { "newIsCapExceptionPattern": "\\.bar$" }] */
var friend = new person.bar();{ "capIsNewExceptions": ["Person"] } 옵션을 사용했을 때의 추가 적절한 코드 예시:
::: correct
/* new-cap: ["error", { "capIsNewExceptions": ["Person"] }] */
function foo(arg) {
return Person(arg);
}{ "capIsNewExceptionPattern": "^person\\.." } 옵션을 사용했을 때의 추가 적절한 코드 예시:
/* new-cap: ["error", { "capIsNewExceptionPattern": "^person\\.." }] */
var friend = person.Acquaintance();
var bestFriend = person.Friend();{ "capIsNewExceptionPattern": "\\.Bar$" } 옵션을 사용했을 때의 추가 적절한 코드 예시:
/* new-cap: ["error", { "capIsNewExceptionPattern": "\\.Bar$" }] */
foo.Bar();{ "capIsNewExceptionPattern": "^Foo" } 옵션을 사용했을 때의 추가 적절한 코드 예시:
/* new-cap: ["error", { "capIsNewExceptionPattern": "^Foo" }] */
var x = Foo(42);
var y = Foobar(42);
var z = Foo.Bar(42);기본 설정 { "properties": true }를 사용했을 때의 부적절한 코드 예시:
/* new-cap: ["error", { "properties": true }] */
var friend = new person.acquaintance();기본 설정 { "properties": true }를 사용했을 때의 적절한 코드 예시:
/* new-cap: ["error", { "properties": true }] */
var friend = new person.Acquaintance();{ "properties": false } 옵션을 사용했을 때의 적절한 코드 예시:
/* new-cap: ["error", { "properties": false }] */
var friend = new person.acquaintance();구성
이 규칙은 다음 속성을 포함하는 구성 객체를 수용합니다:
capIsNew
type: boolean
기본값: true
대문자로 시작하는 모든 함수 이름이 new로 호출되도록 요구합니다.
capIsNewExceptionPattern
type: string
대문자로 시작하는 함수 이름에 대한 예외 항목을 매칭하는 정규 표현식 패턴입니다.
capIsNewExceptions
type: string[]
기본값: []
대문자로 시작하는 함수 이름에 대한 무시할 예외 목록입니다.
newIsCap
type: boolean
기본값: true
모든 생성자 이름이 대문자로 시작하도록 요구합니다. 예: new Person().
newIsCapExceptionPattern
type: string
대문자로 시작하는 생성자 이름에 대한 예외 항목을 매칭하는 정규 표현식 패턴입니다.
newIsCapExceptions
type: string[]
기본값: ["Array", "Boolean", "Date", "Error", "Function", "Number", "Object", "RegExp", "String", "Symbol", "BigInt"]
대문자로 시작하는 생성자 이름에 대한 무시할 예외 목록입니다.
properties
type: boolean
기본값: true
객체 속성에 대해 대문자 표기를 요구합니다 (예: new obj.Method()).
사용 방법
이 규칙을 구성 파일 또는 명령줄에서 활성화하려면 다음을 사용할 수 있습니다:
{
"rules": {
"new-cap": "error"
}
}oxlint --deny new-cap