Are you an LLM? You can read better optimized documentation at /docs/guide/usage/linter/rules/typescript/related-getter-setter-pairs.md for this page in Markdown format
typescript/related-getter-setter-pairs Pedantic
💭 This rule requires type information.
작동 방식
이 규칙은 동일한 속성에 대한 게터와 세터가 함께 정의되어 있고, 관련된 타입을 사용하도록 강제합니다.
왜 문제가 될까?
동일한 속성에 대해 게터와 세터를 정의할 경우, 일반적으로 함께 정의하고 호환되는 타입을 사용해야 합니다. 타입이 불일치하거나 별도로 정의하면 혼란을 초래하고 런타임 오류를 유발할 수 있습니다.
예시
이 규칙에 부적절한 코드 예시:
ts
class Example {
// 호환되지 않는 타입을 가진 게터와 세터
get value(): string {
return this._value.toString();
}
set value(val: number) {
// 게터와 호환되지 않음
this._value = val;
}
private _value: number = 0;
}
// 대응하는 세터 없이 게터만 있거나 그 반대의 경우 경고될 수 있음
class IncompleteProperty {
get readOnlyValue(): string {
return "constant";
}
// 세터 누락 - 의도한 것일 수 있지만 일관성 유지 필요
}이 규칙에 적절한 코드 예시:
ts
class Example {
// 호환되는 타입을 가진 게터와 세터
get value(): string {
return this._value;
}
set value(val: string) {
this._value = val;
}
private _value: string = "";
}
// 읽기 전용 속성 - 게터만 존재
class ReadOnlyProperty {
get constant(): string {
return "constant value";
}
}
// 쓰기 전용 속성 - 세터만 존재 (드물지만 유효함)
class WriteOnlyProperty {
set logger(message: string) {
console.log(message);
}
}사용 방법
구성 파일 또는 명령줄에서 이 규칙을 활성화하려면 다음을 사용하세요:
json
{
"rules": {
"typescript/related-getter-setter-pairs": "error"
}
}bash
oxlint --type-aware --deny typescript/related-getter-setter-pairs