Typescript, как правильно выполнить преобразование типа?
Суть:
Есть сервис User и сервис базы данных (обертка, через которую все сервисы работают с базой. То есть, сервис User получает массив юзеров через postgres) Postgres.
Для примера, возьмем метод find.
Возвращаемый тип от сервиса postgres: [EntityClassOrSchema[], number]. Значение: [[объект из бд], всего объектов].
В сервисе User, что запрашивает объекты через сервис postgres, хочу сделать привидение типа на: User[]
На что получаю ошибку:
TS2352: Conversion of type 'Promise<[EntityClassOrSchema[], number]>' to type 'Promise<User[]>' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first. Type '[EntityClassOrSchema[], number]' is not comparable to type 'User[]'.
Вопросы:
- Нужно ли делать привидение типа тут, вообще?
- Как его приводить, не через
unknown, же.
Update:
По семантике, даже не User[], а [User[], number]
Update 2:
Типы:
EntityClassOrSchema, тип User это Entity из typeorm.
Update 3:
P.S Декоратор @Inject подставит экземпляр класса PostgresqlWrapper.
Логика проста. Сервис User, на ряду с другими сервисами, через обертку (PostgresqlWrapper (чтобы при малейших изменениях не переписывать весь проект)) получает объекты из бд. Но вот тип ответа из сервиса User должен быть именно User, а не "какие-то объекты из бд" (тип от ответа из postgresqlWrapper)