Предпочтительнее явные функции установки/получения (например, функции setBar
и getBar
), а не сеттеры/геттеры.
Рассмотрим следующий код:
foo.bar = {
a: 123,
b: 456
};
При наличии сеттеров/геттеров:
class Foo {
a: number;
b: number;
set bar(value:{a:number,b:number}) {
this.a = value.a;
this.b = value.b;
}
}
let foo = new Foo();
Это не лучшее использование сеттеров свойств. У человека, читающего первый пример кода, нет контекста обо всех вещах, которые могут измениться. В то время как кто-то, вызывающий foo.setBar(value)
, может догадаться, что что-то может измениться в foo
.
Бонус: поиск ссылок работает лучше, если у вас разные функции. В инструментах TypeScript, если вы найдете ссылки на геттер или сеттер, вы получите оба, тогда как при явных вызовах функций вы получите только ссылки на соответствующую функцию.