I have an interface as:
export interface PostEventTypeMap {
changePrice: number;
changeQuantity: number;
signalConnected: boolean;
signalDisconnected: boolean;
}
how I can define a type alias like:
type PostEvent = {
type: keyof PostEventTypeMap,
value: **Value based on key value and PostEventTypeMap**
};
I can not make postEvent property generic:
PostBoxService {
get postEvent(): Observable<PostEvent> {
return getOrCreateValue(this, "postEvent", () => new BehaviorSubject(null));
}
}
The usecase of service:
postBoxService
.postEvent
.subscribe(event => {
if (!event)
return;
switch (event.type) {
case "changePrice":
this.changePrice(event.value);
break;
case "changeQuantity":
this.changeQuantity(event.value);
break;
}
});