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?