Я хочу создать абстрактный обобщенный c класс заказов, например, следующий
export function Order<T>(OrderItem: ClassType<T>) {
@InputType({ isAbstract: true})
abstract class Order implements IOrder<OrderItem>{
@Field(type => OrderItem)
field: OrderItem;
@Field(type => OrderByDirection)
direction: OrderByDirection;
}
}
Я создаю элемент заказа из enum
export enum BaseOrderItem {
CREATED_AT = "createdAt",
}
, и когда я помещаю enum в T, я получаю TS2345,
тип BaseOrderItem нельзя назначить параметру типа 'ClassType'
@InputType()
export class TestOrder extends Order(BaseOrderItem) {}
как я могу использовать enum для динамического ввода типа ??
И когда я поднимаю 'ClassType' ограничения
export function Order<T>(OrderItem) {
@InputType({ isAbstract: true })
abstract class Order implements IOrder<T> {
@Field(type => OrderItem)
field: T;
@Field(type => OrderByDirection, { nullable : true})
direction: OrderByDirection;
}
}
я получил сообщение
type 'void' is not a constructor function type