typescript/explicit-module-boundary-types 제한
작동 방식
내보낸 함수 및 클래스의 공개 클래스 메서드에 명시적인 반환 타입과 인수 타입을 요구합니다.
왜 문제가 되는가?
함수 반환 값과 인수에 대한 명시적 타입은 모듈 경계의 입력과 출력이 무엇인지 호출 코드에서 명확히 이해할 수 있도록 도와줍니다. 이러한 타입에 대해 명시적인 타입 주석을 추가하면 코드의 가독성을 높일 수 있습니다. 또한 대규모 코드베이스에서 TypeScript 타입 검사 성능을 향상시킬 수 있습니다.
예시
이 규칙에 부적절한 코드 예시:
ts
// 반환값이 없음을 나타내야 합니다 (void)
export function test() {
return;
}
// 문자열을 반환해야 함을 나타냅니다
export var arrowFn = () => "test";
// 모든 인수는 타입이 지정되어야 합니다
export var arrowFn = (arg): string => `test ${arg}`;
export var arrowFn = (arg: any): string => `test ${arg}`;
export class Test {
// 반환값이 없음을 나타내야 합니다 (void)
method() {
return;
}
}이 규칙에 적절한 코드 예시:
ts
// 반환값이 없는 함수 (void)
export function test(): void {
return;
}
// 문자열 타입의 반환값
export var arrowFn = (): string => "test";
// 모든 인수는 타입이 지정되어야 합니다
export var arrowFn = (arg: string): string => `test ${arg}`;
export var arrowFn = (arg: unknown): string => `test ${arg}`;
export class Test {
// 반환값이 없는 클래스 메서드 (void)
method(): void {
return;
}
}
// 내보내지 않은 함수이므로 이 규칙이 적용되지 않습니다.
function test() {
return;
}구성
이 규칙은 다음 속성을 가진 구성 객체를 수용합니다.
allowArgumentsExplicitlyTypedAsAny
type: boolean
기본값: false
any로 명시적으로 타입 지정된 인수를 무시할지 여부.
allowDirectConstAssertionInArrowFunctions
type: boolean
기본값: true
as const 타입 암시를 반환하는 본문이 없는 화살표 함수의 반환 타입 주석을 무시할지 여부. 함수의 매개변수는 여전히 타입 지정해야 합니다.
allowHigherOrderFunctions
type: boolean
기본값: true
다른 함수 표현식을 즉시 반환하는 함수의 반환 타입 주석을 무시할지 여부. 함수의 매개변수는 여전히 타입 지정해야 합니다.
allowOverloadFunctions
type: boolean
기본값: false
오버로드 서명을 가진 함수의 반환 타입 주석을 무시할지 여부.
allowTypedFunctionExpressions
type: boolean
기본값: true
함수 표현식의 변수에 대한 타입 주석을 무시할지 여부.
allowedNames
type: string[]
기본값: []
인수나 반환 값을 검사하지 않을 함수/메서드 이름 배열입니다.
사용 방법
이 규칙을 구성 파일 또는 CLI를 통해 활성화하려면 다음을 사용할 수 있습니다:
json
{
"rules": {
"typescript/explicit-module-boundary-types": "error"
}
}bash
oxlint --deny typescript/explicit-module-boundary-types