typeof'enum'不能分配给'ClassType <unknown>'类型的参数

时间:2020-03-09 05:53:48

标签: graphql typegraphql

我想创建如下的抽象通用订单类

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 

1 个答案:

答案 0 :(得分:0)

如果要使用枚举,只需取消ClassType限制。

同样可能进入IOrder<OrderItem>