typescript/consistent-indexed-object-style 스타일
수행하는 작업
Record 타입 또는 인덱스 서명 타입 중 하나를 사용하도록 요구합니다.
이 두 가지 타입은 동등하지만, 이 규칙은 한 스타일을 다른 스타일보다 선호하여 일관성을 유지하도록 강제합니다:
ts
type Foo = Record<string, unknown>;
type Foo = {
[key: string]: unknown;
};왜 나쁜가요?
인덱스 객체 타입의 스타일이 일관되지 않으면 프로젝트 내에서 가독성이 저하될 수 있습니다.
예시
consistent-indexed-object-style: ["error", "record"] (기본값) 설정 시 잘못된 코드 예시:
ts
interface Foo {
[key: string]: unknown;
}
type Foo = {
[key: string]: unknown;
};consistent-indexed-object-style: ["error", "record"] (기본값) 설정 시 올바른 코드 예시:
ts
type Foo = Record<string, unknown>;consistent-indexed-object-style: ["error", "index-signature"] 설정 시 잘못된 코드 예시:
ts
type Foo = Record<string, unknown>;consistent-indexed-object-style: ["error", "index-signature"] 설정 시 올바른 코드 예시:
ts
interface Foo {
[key: string]: unknown;
}
type Foo = {
[key: string]: unknown;
};구성
이 규칙은 다음 중 하나의 문자열 값을 수락합니다.
"record"
record로 설정하면, 인덱스 객체 타입에 대해 Record를 사용하도록 강제합니다. 예: Record<string, unknown>.
"index-signature"
index-signature로 설정하면, 인덱스 서명 타입을 사용하도록 강제합니다. 예: { [key: string]: unknown }.
사용 방법
설정 파일이나 명령줄 인터페이스를 통해 이 규칙을 활성화하려면 다음을 사용할 수 있습니다:
json
{
"rules": {
"typescript/consistent-indexed-object-style": "error"
}
}bash
oxlint --deny typescript/consistent-indexed-object-style