> For the complete documentation index, see [llms.txt](https://artfulbits-se.gitbook.io/typescript/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://artfulbits-se.gitbook.io/typescript/main-1/propertysetters.md).

# Limit Property Setters

Віддавайте перевагу явним функціям set/get (наприклад, функціям `setBar` і `getBar`) над сеттерами/гетерами.

Розглянемо наступний код:

```ts
foo.bar = {
    a: 123,
    b: 456
};
```

За наявності сетера/гетера:

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