Пацаны, вопрос по Typescript
Ситуация такая. У меня есть контроллеры, которы принимают через DI сервисы.
Какой вариант лучше?
1. Писать полные(со всеми методами и свойствами) интерфейсы сервисов и хранить их рядом с сервисами. И потом импортировать в контроллеры
2. Писать полные(со всеми методами и свойствами) интерфейсы сервисов и хранить их рядом с сервисами. Но при этом писать отдельные интерфейсы сервисов для контроллеров (обозначая только те методы и свойства, которые нужны контроллеру)
Первый и второй вариант будут работать, поскольку в Typescript’е используются структурная типизация. Но меня так же интересует мнение людей, которые писали на Java или другом языке с номинативной типизацией
сделай каждому методу свой отдельный интерфейс.
затем сделай пустой интерфейс, который объединит все методы — сервис будет реализовывать этот интерфейс.
а для контроллеров сделай интерфейс, который будет объединять только нужные ему методы.
export interface IMethod1 { method1(...) }
export interface IMethod2 { method2(...) }
export interface IService extends IMethod1, IMethod2 {}