Limit Property Setters

Віддавайте перевагу явним функціям set/get (наприклад, функціям 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, якщо ви знайдете посилання на геттер або сеттер, ви отримаєте обидва, тоді як при явних викликах функцій ви отримаєте лише посилання на відповідну функцію.

Last updated