typeof 'enum' не может быть назначен параметру типа 'ClassType <unknown>' - PullRequest
0 голосов
/ 09 марта 2020

Я хочу создать абстрактный обобщенный 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 

1 Ответ

0 голосов
/ 13 марта 2020

Просто отмените ограничения ClassType, если хотите использовать перечисления.

То же самое, вероятно, go до IOrder<OrderItem>.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...