Được rồi, sau vài giờ đọc qua mã và cách các truy vấn được lắp ráp trong TypeORM, tôi đã đưa ra giải pháp sau.
toPostgres(value : any) : any {
let returnValue = null;
if(! value) {
return null;
} else if(value instanceof CustomClass) {
returnValue = `${value.propertyA} ${value.propertyB}`;
} else {
let findValue = value as FindOperator<CustomClass>;
returnValue = new FindOperator<CustomClass>( findValue[`_type`] as FindOperatorType, toPostgres(findValue.value), findValue.useParameter, findValue.multipleParameters)
}
return returnValue;
}
Nói cách khác, tôi phải áp dụng đệ quy hàm biến áp cho thuộc tính _value của tất cả các Trình điều khiển Tìm.