navikt / analytics-taxonomy

analytics taxonomy for NAV applications
MIT License
1 stars 0 forks source link

Legger til TypeReference som et alternativ til definerte felter som event-properties #22

Closed chinatsu closed 3 years ago

chinatsu commented 3 years ago

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