javascript / expert
Snippet
Unterklassifizierung von nativem EventTarget für typsichere Kontext-Dienste
Die Erweiterung der nativen EventTarget-Klasse des Browsers ermöglicht Svelte-Kontextdiensten ein entkoppeltes Event-Dispatching bei gleichzeitigem Schutz veränderlicher Eigenschaften durch unveränderliche Getter.
snippet.js
javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
export class DomainBus extends EventTarget {#state;constructor(initialState) {super();this.#state = initialState;}get state() {return Object.freeze({ ...this.#state });}dispatchDomainEvent(type, detail) {this.#state = { ...this.#state, ...detail };this.dispatchEvent(new CustomEvent(type, { detail }));}}export function setDomainContext(key, bus) {if (!(bus instanceof DomainBus)) throw new Error('Must pass DomainBus instance');return bus;}
svelte
Erklärung
1
export class DomainBus extends EventTarget {
Unterklassifiziert das native DOM-EventTarget zur Erlangung integrierter Event-Primitiven.
2
get state() {
Gibt den Zustand über einen unveränderlichen Getter als eingefrorene flache Kopie zurück.
3
this.dispatchEvent(new CustomEvent(type, { detail }));
Löst native DOM-Ereignisse über CustomEvents aus, um Abonnenten zu benachrichtigen.
4
if (!(bus instanceof DomainBus)) throw new Error('Must pass DomainBus instance');
Überprüft OOP-Instanzkompatibilität vor der Weitergabe im Svelte-Kontext-Stamm.