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)


Ответы (0 шт):