eslint/func-style 스타일
동작 방식
함수 선언 또는 변수에 할당된 함수 표현식 중 하나를 일관되게 사용하도록 강제합니다.
왜 문제인가요?
이 규칙은 함수 스타일의 특정 형식, 즉 함수 선언 또는 변수에 할당된 함수 표현식 중 하나를 요구합니다. 설정에서 선호하는 방식을 지정할 수 있습니다.
예시
// 함수 선언
function doSomething() {
// ...
}
// 변수에 할당된 화살표 함수 표현식
const doSomethingElse = () => {
// ...
};
// 변수에 할당된 함수 표현식
const doSomethingAgain = function () {
// ...
};기본값 "expression" 옵션과 함께 잘못된 코드 예시:
/* func-style: ["error", "expression"] */
function foo() {
// ...
}"declaration" 옵션과 함께 잘못된 코드 예시:
/* func-style: ["error", "declaration"] */
var foo = function () {
// ...
};
var foo = () => {};"declaration" 및 {"overrides": { "namedExports": "expression" }} 옵션과 함께 잘못된 코드 예시:
/* func-style: ["error", "declaration", { "overrides": { "namedExports": "expression" } }] */
export function foo() {
// ...
}"expression" 및 {"overrides": { "namedExports": "declaration" }} 옵션과 함께 잘못된 코드 예시:
/* func-style: ["error", "expression", { "overrides": { "namedExports": "declaration" } }] */
export var foo = function () {
// ...
};
export var bar = () => {};기본값 "expression" 옵션과 함께 올바른 코드 예시:
/* func-style: ["error", "expression"] */
var foo = function () {
// ...
};"declaration" 옵션과 함께 올바른 코드 예시:
/* func-style: ["error", "declaration"] */
function foo() {
// ...
}
// 메서드(객체에 할당된 함수)는 이 규칙의 대상이 아님
SomeObject.foo = function () {
// ...
};"declaration", { "allowArrowFunctions": true } 옵션과 함께 추가적인 올바른 코드 예시:
/* func-style: ["error", "declaration", { "allowArrowFunctions": true }] */
var foo = () => {};"declaration" 및 {"overrides": { "namedExports": "expression" }} 옵션과 함께 올바른 코드 예시:
/* func-style: ["error", "declaration", { "overrides": { "namedExports": "expression" } }] */
export var foo = function () {
// ...
};
export var bar = () => {};"expression" 및 {"overrides": { "namedExports": "declaration" }} 옵션과 함께 올바른 코드 예시:
/* func-style: ["error", "expression", { "overrides": { "namedExports": "declaration" } }] */
export function foo() {
// ...
}{"overrides": { "namedExports": "ignore" }} 옵션과 함께 올바른 코드 예시:
/* func-style: ["error", "expression", { "overrides": { "namedExports": "ignore" } }] */
export var foo = function () {
// ...
};
export var bar = () => {};
export function baz() {
// ...
}구성
첫 번째 옵션
타입: "expression" | "declaration"
두 번째 옵션
이 옵션은 다음 속성을 가진 객체입니다:
allowArrowFunctions
타입: boolean
기본값: false
true로 설정되면, 스타일 설정과 관계없이 화살표 함수를 허용합니다.
allowTypeAnnotation
타입: boolean
기본값: false
true로 설정되면, 스타일 설정과 관계없이 타입 애노테이션이 있는 함수를 허용합니다.
overrides
타입: object
overrides.namedExports
타입: "ignore" | "expression" | "declaration"
기본값: null
사용 방법
구성 파일 또는 명령줄 인터페이스에서 이 규칙을 활성화하려면 다음을 사용하세요:
{
"rules": {
"func-style": "error"
}
}oxlint --deny func-style