typescript/no-for-in-array 정확성
작동 방식
이 규칙은 배열을 for-in 루프로 반복하는 것을 금지합니다.
왜 문제가 되는가?
for-in 루프는 객체의 열거 가능한 속성들을 반복합니다. 이는 배열 인덱스를 포함하지만, 배열 프로토타입이나 배열 인스턴스에 추가된 어떤 열거 가능한 속성도 포함합니다. 배열을 반복할 때 일반적으로 원하는 것은 거의 항상 배열의 값 자체이므로, 이러한 방식은 거의 항상 부적절합니다.
예시
이 규칙에 부적절한 코드 예시:
ts
const arr = [1, 2, 3];
for (const i in arr) {
console.log(arr[i]);
}
for (const i in arr) {
console.log(i, arr[i]);
}이 규칙에 적절한 코드 예시:
ts
const arr = [1, 2, 3];
// 배열 값을 반복하려면 for-of 사용
for (const value of arr) {
console.log(value);
}
// 인덱스를 사용하는 일반적인 for 루프
for (let i = 0; i < arr.length; i++) {
console.log(i, arr[i]);
}
// forEach 사용
arr.forEach((value, index) => {
console.log(index, value);
});
// for-in은 객체에는 문제가 없습니다
const obj = { a: 1, b: 2 };
for (const key in obj) {
console.log(key, obj[key]);
}사용 방법
이 규칙을 설정 파일 또는 명령줄 인터페이스에서 활성화하려면 다음을 사용하세요:
json
{
"rules": {
"typescript/no-for-in-array": "error"
}
}bash
oxlint --type-aware --deny typescript/no-for-in-array