Я хочу инициализировать переменную универсального класса внутри универсального класса, используя универсальный тип, но я не могу понять, есть ли способ сделать это.
Инициализация с типами работает нормально, но не похоже, что она работает с обобщениями.
type EventCallback<I, O> = (event: I) => O;
type ListenerList<K extends string | symbol | number, I, O, V extends EventCallback<I, O>> = {
[T in K]: V[];
};
const test: ListenerList<string, string, string, (event: any) => any> = {}; // Works fine
export default class EventProcesser<
K extends string | symbol | number,
I,
O,
V extends EventCallback<I, O>
> {
private listeners: ListenerList<K, I, O, V> = {}; // Error :(
}
Я получаю следующую ошибку Type '{}' is not assignable to type 'ListenerList<K, I, O, V>'
. Есть ли способ сделать это?