@typescript-eslint/related-getter-setter-pairs
Require the type of a getter to be assignable to the type of its setter
needs types
Also called typescript-eslint/related-getter-setter-pairs, typescript/related-getter-setter-pairs
TypeScript lets a property's getter and setter have different types. If the getter can return something the setter doesn't accept, then field.value = field.value is a type error, which nobody expects from a property.
The other direction is fine, so a setter can accept more than the getter returns. A getter without a return type annotation isn't checked.
Configure#
Off by default. This rule needs types, so turning it on makes bun lint type check your code first.
bunfig.toml
[lint.rules]
"@typescript-eslint/related-getter-setter-pairs" = "error" # or "warn"Examples#
example.ts1 problem
interface Field {
get value(): string | undefinedget() type should be assignable to its equivalent set() type.;
set value(next: string);
}example.tsNo problems
interface Field {
get value(): string;
set value(next: string | undefined);
}
class Width {
#px = 0;
get size(): number {
return this.#px;
}
set size(next: number | string) {
this.#px = Number(next);
}
}