Events i nåværende kode er smått restriktivt når det kommer til hva brukere får lov til å definere som event-properties. Dersom brukere av biblioteket ønsker å bruke andre properties enn det som er definert, må det forekomme endringer i biblioteket.
For å gjøre denne biten av koden litt mer relaxed kan en union brukes i typedefinisjonen til parameteret for hver funksjon. Den ene siden peker til interfacet som er definert (slik at kodeforslag fremdeles kan benyttes av IDE), mens den andre siden definerer et objekt med en index signature (som lar brukere definere egne properties om de ønsker det, gitt at de følger de grunnleggende typene som er påkrevd, da).
Resultatet er en generert kode som går fra
export function logChatStartet(props: logChatStartetProps): void
til
export function logChatStartet(props: logChatStartetProps | {
[key: string]: string | number | boolean;
}): void
Events i nåværende kode er smått restriktivt når det kommer til hva brukere får lov til å definere som event-properties. Dersom brukere av biblioteket ønsker å bruke andre properties enn det som er definert, må det forekomme endringer i biblioteket. For å gjøre denne biten av koden litt mer relaxed kan en union brukes i typedefinisjonen til parameteret for hver funksjon. Den ene siden peker til interfacet som er definert (slik at kodeforslag fremdeles kan benyttes av IDE), mens den andre siden definerer et objekt med en index signature (som lar brukere definere egne properties om de ønsker det, gitt at de følger de grunnleggende typene som er påkrevd, da).
Resultatet er en generert kode som går fra
til