Preserve generics in contextual types for rest arguments (#44122)

* Move all getIndexedAccessType flags to AccessFlags enum

* Preserve generics in contextual types for rest arguments

* Add regression test
This commit is contained in:
Anders Hejlsberg
2021-05-19 13:46:07 -07:00
committed by GitHub
parent 73736d9b84
commit e67da8a748
7 changed files with 174 additions and 50 deletions

View File

@@ -129,3 +129,13 @@ function get<K extends keyof A>(key: K, obj: A): number {
}
return 0;
};
// Repro from #44093
class EventEmitter<ET> {
off<K extends keyof ET>(...args: [K, number] | [unknown, string]):void {}
}
function once<ET, T extends EventEmitter<ET>>(emittingObject: T, eventName: keyof ET): void {
emittingObject.off(eventName, 0);
emittingObject.off(eventName as typeof eventName, 0);
}