Skip to content
← Back to rules

eslint/func-names 스타일

🛠️💡 An auto-fix and a suggestion are available for this rule for some violations.

작동 방식

함수 표현식의 이름을 요구하거나 허용하지 않도록 합니다.

왜 좋지 않은가?

함수에 이름을 지정하지 않으면, 오류가 발생했을 때 스택 트레이스에 <익명>이 표시됩니다.
이러한 경우 오류가 발생한 위치를 찾는 것이 더 어렵습니다.
명시적인 이름을 제공하면 가독성과 일관성이 향상됩니다.

예시 구성:

json
{
  "func-names": ["error", "as-needed", { "generators": "never" }]
}

예시

이 규칙에 잘못된 코드 예시:

js
/* func-names: ["error", "always"] */

Foo.prototype.bar = function () {};
const cat = { meow: function () {} };
(function () {
  /* ... */
})();
export default function () {}

이 규칙에 올바른 코드 예시:

js
/* func-names: ["error", "always"] */

Foo.prototype.bar = function bar() {};
const cat = { meow() {} };
(function bar() {
  /* ... */
})();
export default function foo() {}

as-needed

"as-needed" 옵션과 함께 이 규칙에 잘못된 코드 예시:

js
/* func-names: ["error", "as-needed"] */

Foo.prototype.bar = function () {};
(function () {
  /* ... */
})();
export default function () {}

"as-needed" 옵션과 함께 이 규칙에 올바른 코드 예시:

js
/* 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" 옵션과 함께 이 규칙에 잘못된 코드 예시:

js
/* func-names: ["error", "never"] */

Foo.prototype.bar = function bar() {};
(function bar() {
  /* ... */
})();

"never" 옵션과 함께 이 규칙에 올바른 코드 예시:

js
/* func-names: ["error", "never"] */

Foo.prototype.bar = function () {};
(function () {
  /* ... */
})();

generators

"always", { "generators": "as-needed" } 옵션과 함께 이 규칙에 잘못된 코드 예시:

js
/* func-names: ["error", "always", { "generators": "as-needed" }] */

(function* () {
  /* ... */
})();

"always", { "generators": "as-needed" } 옵션과 함께 이 규칙에 올바른 코드 예시:

js
/* func-names: ["error", "always", { "generators": "as-needed" }] */

const foo = function* () {};

"always", { "generators": "never" } 옵션과 함께 이 규칙에 잘못된 코드 예시:

js
/* func-names: ["error", "always", { "generators": "never" }] */

const foo = bar(function* baz() {});

"always", { "generators": "never" } 옵션과 함께 이 규칙에 올바른 코드 예시:

js
/* func-names: ["error", "always", { "generators": "never" }] */

const foo = bar(function* () {});

"as-needed", { "generators": "never" } 옵션과 함께 이 규칙에 잘못된 코드 예시:

js
/* func-names: ["error", "as-needed", { "generators": "never" }] */

const foo = bar(function* baz() {});

"as-needed", { "generators": "never" } 옵션과 함께 이 규칙에 올바른 코드 예시:

js
/* func-names: ["error", "as-needed", { "generators": "never" }] */

const foo = bar(function* () {});

"never", { "generators": "always" } 옵션과 함께 이 규칙에 잘못된 코드 예시:

js
/* func-names: ["error", "never", { "generators": "always" }] */

const foo = bar(function* () {});

"never", { "generators": "always" } 옵션과 함께 이 규칙에 올바른 코드 예시:

js
/* 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* 구문을 사용하여 정의된 함수입니다.

js
function* foobar(i) {
  yield i;
  yield i + 10;
}

사용 방법

이 규칙을 구성 파일이나 명령줄 인터페이스에서 활성화하려면 다음을 사용할 수 있습니다:

json
{
  "rules": {
    "func-names": "error"
  }
}
bash
oxlint --deny func-names

참고 자료