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 細かい
💭 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);
}
}使い方
このルールを有効にするには、設定ファイルまたは CLI を使って次のように使用できます:
json
{
"rules": {
"typescript/related-getter-setter-pairs": "error"
}
}bash
oxlint --type-aware --deny typescript/related-getter-setter-pairs