Перейти к содержанию

Ограничьте использование сеттеров свойств

Предпочтительнее явные функции установки/получения (например, функции setBar и getBar), а не сеттеры/геттеры.

Рассмотрим следующий код:

1
2
3
4
foo.bar = {
    a: 123,
    b: 456,
};

При наличии сеттеров/геттеров:

1
2
3
4
5
6
7
8
9
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, если вы найдете ссылки на геттер или сеттер, вы получите оба, тогда как при явных вызовах функций вы получите только ссылки на соответствующую функцию.

Комментарии