Angular: как проверять тип данных у свойства компонента?

"@angular/core": "^4.0.0"
"typescript": "~2.3.3"

@Component({
  selector: 'app-parent',
  template: `<app-child [data]="test"></app-child>`
})
export class ParentComponent {

  test: number = 123;
}

/*******/

class Test {
  name: string
}

@Component({
  selector: 'app-child',
  template: `<div>{{data.name}}</div>`,
})
export class ChildComponent {

  @Input() data: Test;
}


Почему ChildComponent не ругается на то, что свойство data не относится к типу данных Test?
Как можно средствами typescript или angular делать проверку входящих свойств компонента?
  • Вопрос задан
  • 742 просмотра
Пригласить эксперта
Ответы на вопрос 1
@alexs0ff
Компилятор typescript не обрабатывает шаблоны компонентов, поэтому при компиляции мы не получим ошибку. Как workaround могу предложить следующее - преобразуйте data в проперти и в методе set уже в рантайме проверяйте входящий тип. Или напишите свой декоратор, который будет уже в декларативном стиле проверять входящие типы значений.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы