Подскажите пожалуйста зачем для хука OnInit в объявлении класса в компоненте пишут так:
export class SpeakersComponent implements OnInit {
Компонент работает без проблем и так:
export class SpeakersComponent {
Если же всё таки первая запись зачем-то нужна, то как быть в случае использования нескольких хуков в одном компоненте. Например OnInit, ngDoCheck, ngOnDestroy ? Как известно в ангуляре нет множественного наследования.
Тогда просто перечислите несколько интерфейсов
export class SpeakersComponent implements OnInit, OnDestroy....
На самом деле перечисление интерфейсов нужно только для того чтобы помочь вам не забыть имплементировать их т.к. ИДЕ и компилятор покажут ошибку, но при срабатывании соответствующего события Angular просто проверяет наличие у объекта соответствующего метода (ngOnInit, ngOnDestroy соответственно) и если он определен - вызывает его. Он не может определить в рантайме был ли у класса указан интерфейс или нет. Т.е. ngOnInit будет вызван даже если implements OnInit НЕ БЫЛ указан.
https://angular.io/guide/lifecycle-hooks
После создания компонента фреймворк Angular вызывает у этого компонента ряд методов, которые представляют различные этапы жизненного цикла. Каждый такой метод определен в отдельном интерфейсе, который называется по имени метода без префикса "ng". Например, метод ngOnInit определен в интерфейсе OnInit. Поэтому, если мы хотим отслеживать какие-то этапы жизненного цикла компонента, то класс компонента должен применять соответствующие интерфейсы
https://metanit.com/web/angular2/2.8.php
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости