The following program defines play and stop events.
import { EventRecord, EventTarget } from "@hydroperx/event";
// media player
class MediaPlayer extends EventTarget {
// declare events
declare [EventRecord]: {
play: MediaPlayerEvent,
stop: MediaPlayerEvent,
};
}Extending MediaPlayer with more events:
// media player
class MoreSpecializedPlayer extends MediaPlayer {
// declare events
declare [EventRecord]: MediaPlayer[typeof EventRecord] & {
// more events...
};
}Note that event types must implement the
Eventinterface.