refactor: EventEmitter
to retain behaviour of pre TypeScript 3.9 (#36989)
TypeScript 3.9 introduced a breaking change where extends `any` no longer acts as `any`, instead it acts as `unknown`. With this change we retain the behavior we had with TS 3.8 which is; When using the `EventEmitter` as a type you must always provide a type; ```ts let emitter: EventEmitter<string> ``` and when initializing the `EventEmitter` class you can either provide a type or or use the fallback type which is `any` ```ts const emitter = new EventEmitter(); // EventEmitter<any> const emitter = new EventEmitte<string>(); // EventEmitter<string> `` PR Close #36989
This commit is contained in:

committed by
Kara Erickson

parent
24ec5235a0
commit
f97d8a9cbd
10
goldens/public-api/core/core.d.ts
vendored
10
goldens/public-api/core/core.d.ts
vendored
@ -313,12 +313,18 @@ export declare class ErrorHandler {
|
||||
handleError(error: any): void;
|
||||
}
|
||||
|
||||
export declare class EventEmitter<T> extends Subject<T> {
|
||||
constructor(isAsync?: boolean);
|
||||
export declare interface EventEmitter<T> extends Subject<T> {
|
||||
new (isAsync?: boolean): EventEmitter<T>;
|
||||
emit(value?: T): void;
|
||||
subscribe(generatorOrNext?: any, error?: any, complete?: any): Subscription;
|
||||
}
|
||||
|
||||
export declare const EventEmitter: {
|
||||
new (isAsync?: boolean): EventEmitter<any>;
|
||||
new <T>(isAsync?: boolean): EventEmitter<T>;
|
||||
readonly prototype: EventEmitter<any>;
|
||||
};
|
||||
|
||||
export declare interface ExistingProvider extends ExistingSansProvider {
|
||||
multi?: boolean;
|
||||
provide: any;
|
||||
|
Reference in New Issue
Block a user