Зачем в синтаксисе классов get/set?
При чтении и записи в свойство экземпляра данного класса
const instance = new Name();
const name = instance.name; // чтение свойства, вызовется геттер класса Name.
instance.valueName = 'John'; // запись в свойство, вызовется сеттер класса Name.
, будут вызываться геттеры и сеттеры, в которых можно делать все что угодно.

В целом со стороны пользователя класса всё это будет выглядеть как магия. Данный паттерн плох тем, что позволяет задавать неявное поведение кода, когда программист присваивает значение или читает его и происходят какие-нибудь вещи которых он не ожидал.
Реакция объекта (обработчик) на действия по установке/изменению или возврату своих состояний.