In TypeScript is het aan te raden om de types voor callback-functies duidelijk te beschrijven. Het definiëren van de types van parameters en retourwaarden helpt om fouten te voorkomen:
type Callback = (event: string, id: number) => boolean; function useCallback(cb: Callback) { // ... }
void kan retourneren (niets retourneert) moet dit worden aangegeven: () => void.Is het noodzakelijk om de types van parameters en retourwaarden aan te geven in de definitie van een callback-functie, als TypeScript ze automatisch kan afleiden?
Antwoord: Niet noodzakelijk, TypeScript kan de types van callback-argumenten afleiden, maar voor publieke API's en complexe samengestelde functies is het uiterst wenselijk om alle types expliciet aan te geven. Dit vergemakkelijkt het onderhoud en voorkomt ongewenste fouten bij het wijzigen van functiese contracten.
Verhaal
In een project werd een callback gebruikt zonder expliciete typisering van de retourwaarde, en een van de ontwikkelaars begon een string te retourneren in plaats van de verwachte boolean. Dit veroorzaakte geen fout tijdens de compilatie vanwege de standaard any, maar de logica van de functie werkte niet meer, wat leidde tot een bug in productie.
Verhaal
In een groot React-project was het vergeten om parameters van event-callbacks expliciet te typeren. Bij de overstap naar een nieuwe versie van React veranderden de types van evenementen, en de code begon te compileren met fouten. Het was noodzakelijk om de callback-functie op alle pagina's urgent te corrigeren.
Verhaal
In een Node.js-applicatie was de callback voor het werken met een asynchrone functie niet getypeerd: de verkregen waarde werd ten onrechte geïnterpreteerd als een string, terwijl het een error-object was. Het verschil in types leidde tot het onvermogen om fouten correct te verwerken.