eslint/no-useless-computed-key 스타일
작동 방식
객체 및 클래스에서 불필요한 계산된 속성 키를 사용하지 않도록 제한합니다.
왜 나쁜가요?
다음과 같은 리터럴을 사용해 계산된 속성 키를 사용하는 것은 불필요합니다:
js
const foo = { ["a"]: "b" };이 코드는 다음과 같이 재작성할 수 있습니다:
js
const foo = { a: "b" };예시
이 규칙에 대한 틀린 예시:
js
const a = { ["0"]: 0 };
const b = { ["0+1,234"]: 0 };
const c = { [0]: 0 };
const e = { ["x"]() {} };
class Foo {
["foo"] = "bar";
[0]() {}
static ["foo"] = "bar";
get ["b"]() {}
set ["c"](value) {}
}이 규칙에 대한 올바른 예시:
js
const a = { a: 0 };
const b = { 0: 0 };
const c = { x() {} };
const e = { "0+1,234": 0 };
class Foo {
foo = "bar";
0() {}
a() {}
static foo = "bar";
}이 규칙에 대한 추가적인 올바른 예시:
js
const c = {
__proto__: foo, // 객체의 프로토타입을 정의
["__proto__"]: bar, // 이름이 "__proto__"인 속성을 정의
};
class Foo {
["constructor"]; // 이름이 "constructor"인 인스턴스 필드
constructor() {} // 이 클래스의 생성자
static ["constructor"]; // 이름이 "constructor"인 정적 필드
static ["prototype"]; // 런타임 오류, `[]` 없이 파싱 오류 발생
}구성
이 규칙은 다음 속성을 가진 구성 객체를 수용합니다.
enforceForClassMembers
type: boolean
기본값: true
enforceForClassMembers 옵션은 이 규칙이 클래스 멤버(메서드 및 속성)에 적용되는지를 제어합니다.
{ "enforceForClassMembers": false } 옵션을 사용한 경우 이 규칙에 대한 올바른 예시:
js
class SomeClass {
["foo"] = "bar";
[42] = "baz";
get ["b"]() {}
set ["c"](value) {}
static ["foo"] = "bar";
}사용 방법
구성 파일 또는 명령줄에서 이 규칙을 활성화하려면 다음을 사용하세요:
json
{
"rules": {
"no-useless-computed-key": "error"
}
}bash
oxlint --deny no-useless-computed-key