Typescript не выводит тип при использовании параметра типа

#typescript #typescript-generics

Вопрос:

 export class BaseEntity<T extends BaseEntityGenerics = BaseEntityGenerics> extends BaseObserver<T['LISTENER']> 

    public setLocked(locked: boolean = true) {
        this.fireEvent(
            { locked: true},  //error here
            'lockChanged'
        );
    }
}
 

Но в этом коде нет ошибки

 export class BaseEntity<T extends BaseEntityGenerics = BaseEntityGenerics> extends BaseObserver<BaseEntityListener> 

    public setLocked(locked: boolean = true) {
        this.fireEvent(
            { locked: true},  //NO error here
            'lockChanged'
        );
    }
}
 

Я не могу понять, какой тип, по мнению TS, должен использовать первый блок кода. Также, почему работает второй блок кода?

Ссылка на игровую площадку с полным примером с ошибкой

Комментарии:

1. избегайте мутаций в TS, если вы хотите вывести аргументы функции. event = {

2. Постарайтесь сократить свой пример и сделать его минимально воспроизводимым