TypeOrm using FindConditions with Generic error

Viewed 305

I have 2 functions for creating TypeOrm queries for 2 similar entities. Here is the general structure of that 2 functions:

import { MeterReadingRequest } from '../../schemas/MeterReadingRequest';
import { FindConditions, In } from "typeorm";
import { MeterReadingNonODA } from "../../entities/MeterReadingNonODA";

export function getQuery(params: MeterReadingRequest): FindConditions<MeterReadingNonODA> {
  let query: FindConditions<MeterReadingNonODA>;

  query.ConnectionCode = In(params.connection_code);

  ...
  return query;
};

and second one:

import { MeterReadingRequest } from '../../schemas/MeterReadingRequest';
import { FindConditions, In } from "typeorm";
import { MeterReadingODA } from "../../entities/MeterReadingODA";

export function getQuery(params: MeterReadingRequest): FindConditions<MeterReadingODA> {
  let query: FindConditions<MeterReadingODA>;

  query.ConnectionCode = In(params.connection_code);

  ...
  return query;
};

I just wanted to merge that two with a single function like that:

import { MeterReadingRequest } from '../../schemas/MeterReadingRequest';
import { FindConditions, In } from 'typeorm';
import { MeterReading } from '../../entities/MeterReadingInterface';

export function getQuery<T extends MeterReading>(params: MeterReadingRequest): FindConditions<T> {

  let query: FindConditions<T>;

  query.ConnectionCode = In(params.connection_code);
  ...
  return query;
}

but I get a TS Compile error like this:

Type 'FindOperator' is not assignable to type 'T["ConnectionCode"] extends never ? FindConditions<T["ConnectionCode"]> | FindOperator<FindConditions<T["ConnectionCode"]>> : FindConditions<...> | FindOperator<...>'.ts(2322)

I can not get problem here. Any suggestion?

0 Answers
Related