TypeScript-интерфейс нельзя использовать как runtime-токен inject: после компиляции он отсутствует.
Можно ли передать интерфейс в качестве токена в inject? Почему да или нет?
TypeScript-интерфейс нельзя использовать как runtime-токен inject: после компиляции он отсутствует.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
TypeScript-интерфейс нельзя использовать как runtime-токен inject: после компиляции он отсутствует.
Создайте new InjectionToken<ServiceContract>('ServiceContract'), зарегистрируйте provider под этим экземпляром и передайте его в inject. Generic задаёт тип результата, а уникальный объект токена идентифицирует зависимость во время выполнения.