на классы, которые реализуют определенный интерфейс?
пытаюсь сделать вот такой декоратор
export function RedisEventSub<T extends IEventProcessor>(name: string) {
return function (target: T) {
target.eventType = name;
}
}
export interface IEventProcessor {
process(event: IEvent): void;
eventType: string;
}
ну и класс
@RedisEventSub("sms")
export class SMSEventProcessor implements IEventProcessor {
public constructor(...any) {
}
readonly eventType: string;
process(event: IEvent): void {
}
}
компилятор, что логично, ругается
TS2345: Argument of type 'typeof SMSEventProcessor' is not assignable to parameter of type 'IEventProcessor'. Type 'typeof SMSEventProcessor' is missing the following properties from type 'IEventProcessor': process, eventType
Можно это как-то красиво зарешать?
Вы навешиваете декоратор на конструктор, но требуете чтобы конструктор был экземпляром класса
Обсуждают сегодня