我想创建如下的抽象通用订单类
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;
}
}
我从枚举创建订单商品
export enum BaseOrderItem {
CREATED_AT = "createdAt",
}
当我将枚举加到T时,我得到TS2345,
BaseOrderItem类型不能分配给'ClassType'类型的参数
@InputType()
export class TestOrder extends Order(BaseOrderItem) {}
如何使用枚举动态输入类型?
当我解除对“ 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
答案 0 :(得分:0)
如果要使用枚举,只需取消ClassType
限制。
同样可能进入IOrder<OrderItem>
。