eslint/no-extend-native 의심스러운
작동 방식
Object, String, Array와 같은 내장 전역 객체에 새 속성을 추가하는 것을 막습니다.
왜 문제가 되는가?
내장 객체를 확장하면 예기치 못한 동작과 다른 코드와의 충돌을 일으킬 수 있습니다.
예를 들어:
js
// 새로운 속성을 추가하는 경우, 괜찮아 보일 수 있음
Object.prototype.extra = 55;
// 사용자 객체 정의
const users = {
1: "user1",
2: "user2",
};
for (const id in users) {
// "extra", "1", "2" 모두 출력됨:
console.log(id);
}예시
이 규칙에 대해 잘못된 코드 예시:
js
Object.prototype.p = 0;
Object.defineProperty(Array.prototype, "p", { value: 0 });이 규칙에 대해 올바른 코드 예시:
js
x.prototype.p = 0;
Object.defineProperty(x.prototype, "p", { value: 0 });구성
이 규칙은 다음 속성을 가진 구성 객체를 수용합니다.
예외
type: string[]
기본값: []
규칙의 예외로 허용되는 객체 목록입니다.
사용 방법
구성 파일 또는 명령줄 인터페이스에서 이 규칙을 활성화하려면 다음을 사용할 수 있습니다:
json
{
"rules": {
"no-extend-native": "error"
}
}bash
oxlint --deny no-extend-native