Я использую диспетчер событий для регистрации и запуска событий внутри классов в TypeScript. Код работает отлично. Для лучшего качества кода я использую TSLint, который недоволен тем, как я объявляю обработчик, но я не понимаю описания.
Фрагмент кода:
export type Handler<E> = (event: E) => void;
export class EventDispatcher<E> {
private handlers: Handler<E>[] = [];
public fire(event: E) {
for (const h of this.handlers) {
h(event);
}
}
public register(handler: Handler<E>) {
this.handlers.push(handler);
}
}
TSLint недоволен строкой 4 в коде, в частности, Handler<E>[]
. Сообщение:
[tslint] Тип массива с использованием 'T []' запрещен для непростых типов. использование
«Массив» вместо. (тип-массива) [tslint] Тип массива с использованием 'T []'
запрещено для непростых типов. Вместо этого используйте «Массив». тип
Обработчик = (событие: E) => void
Я не до конца понимаю, чего от меня хочет TSLint. Почему T
запрещено? Что подразумевается под непростым типом? Это также говорит о том, что я должен использовать вместо этого массив, но Handler<E>[]
уже является массивом. Так в чем же проблема?