Передача данных в сеттер дочернего компонента в Angular

Можно сделать так, чтобы данные из родительского компонента попадали в сеттер приватного свойства. Давайте посмотрим на примере. Пусть у нас есть приватное свойство с сеттером и геттером:

app/user/user.component.tsclass UserComponent {
  private _name: string = '';
  
  set name(name: string) {
    if (name.length < 3) {
      this._name = name;
    } else {
      console.log('error');
    }
  }
  
  get age() {
    return this._userAge;
  }
}

Для примера давайте сделаем сеттер возраста, в котором реализуем проверку переданных данных. Также сделаем геттер для вывода свойств пользователя:

app/user/user.component.tsclass UserComponent {
  private _name: string = '';
  
  @Input()
  set name(name: string) {
    if (name.length > 3) {
      this._name = name;
    } else {
      console.log('error');
    }
  }
  
  get name() {
    return this._name;
  }
}

Теперь передадим данные из родительского компонента в дочерний:

app/app.component.html<user-data name="john"></user-data>

А в дочернем компоненте выведем переданное имя на экран:

app/user/user.component.html<p>{{ name }}</p>
Задание 1

Объясните, почему приватное свойство _name начинается с символа подчеркивания.

Задание 2

Реализуйте сеттеры и геттеры для названия продукта и его цены, которые будут передаваться из родительского компонента.