eslint/func-names 스타일
작동 방식
함수 표현식의 이름을 요구하거나 허용하지 않도록 합니다.
왜 좋지 않은가?
함수에 이름을 지정하지 않으면, 오류가 발생했을 때 스택 트레이스에 <익명>이 표시됩니다.
이러한 경우 오류가 발생한 위치를 찾는 것이 더 어렵습니다.
명시적인 이름을 제공하면 가독성과 일관성이 향상됩니다.
예시 구성:
{
"func-names": ["error", "as-needed", { "generators": "never" }]
}예시
이 규칙에 잘못된 코드 예시:
/* func-names: ["error", "always"] */
Foo.prototype.bar = function () {};
const cat = { meow: function () {} };
(function () {
/* ... */
})();
export default function () {}이 규칙에 올바른 코드 예시:
/* func-names: ["error", "always"] */
Foo.prototype.bar = function bar() {};
const cat = { meow() {} };
(function bar() {
/* ... */
})();
export default function foo() {}as-needed
"as-needed" 옵션과 함께 이 규칙에 잘못된 코드 예시:
/* func-names: ["error", "as-needed"] */
Foo.prototype.bar = function () {};
(function () {
/* ... */
})();
export default function () {}"as-needed" 옵션과 함께 이 규칙에 올바른 코드 예시:
/* func-names: ["error", "as-needed"] */
const bar = function () {};
const cat = { meow: function () {} };
class C {
#bar = function () {};
baz = function () {};
}
quux ??= function () {};
(function bar() {
/* ... */
})();
export default function foo() {}never
"never" 옵션과 함께 이 규칙에 잘못된 코드 예시:
/* func-names: ["error", "never"] */
Foo.prototype.bar = function bar() {};
(function bar() {
/* ... */
})();"never" 옵션과 함께 이 규칙에 올바른 코드 예시:
/* func-names: ["error", "never"] */
Foo.prototype.bar = function () {};
(function () {
/* ... */
})();generators
"always", { "generators": "as-needed" } 옵션과 함께 이 규칙에 잘못된 코드 예시:
/* func-names: ["error", "always", { "generators": "as-needed" }] */
(function* () {
/* ... */
})();"always", { "generators": "as-needed" } 옵션과 함께 이 규칙에 올바른 코드 예시:
/* func-names: ["error", "always", { "generators": "as-needed" }] */
const foo = function* () {};"always", { "generators": "never" } 옵션과 함께 이 규칙에 잘못된 코드 예시:
/* func-names: ["error", "always", { "generators": "never" }] */
const foo = bar(function* baz() {});"always", { "generators": "never" } 옵션과 함께 이 규칙에 올바른 코드 예시:
/* func-names: ["error", "always", { "generators": "never" }] */
const foo = bar(function* () {});"as-needed", { "generators": "never" } 옵션과 함께 이 규칙에 잘못된 코드 예시:
/* func-names: ["error", "as-needed", { "generators": "never" }] */
const foo = bar(function* baz() {});"as-needed", { "generators": "never" } 옵션과 함께 이 규칙에 올바른 코드 예시:
/* func-names: ["error", "as-needed", { "generators": "never" }] */
const foo = bar(function* () {});"never", { "generators": "always" } 옵션과 함께 이 규칙에 잘못된 코드 예시:
/* func-names: ["error", "never", { "generators": "always" }] */
const foo = bar(function* () {});"never", { "generators": "always" } 옵션과 함께 이 규칙에 올바른 코드 예시:
/* func-names: ["error", "never", { "generators": "always" }] */
const foo = bar(function* baz() {});구성
첫 번째 옵션
유형: "always" | "as-needed" | "never"
"always"
모든 함수 표현식에 이름이 필요합니다.
"as-needed"
자동으로 추론되지 않는 경우에만 이름이 필요합니다.
"never"
함수 표현식의 이름을 허용하지 않습니다.
두 번째 옵션
이 옵션은 다음 속성을 가진 객체입니다.
generators
제너레이터 함수 표현식에 대한 설정입니다. 지정하지 않으면 주 설정을 사용합니다.
always, as-needed, 또는 never를 수락합니다.
제너레이터 함수는 function* 구문을 사용하여 정의된 함수입니다.
function* foobar(i) {
yield i;
yield i + 10;
}사용 방법
이 규칙을 구성 파일이나 명령줄 인터페이스에서 활성화하려면 다음을 사용할 수 있습니다:
{
"rules": {
"func-names": "error"
}
}oxlint --deny func-names