𝗖𝗹𝗶𝗲𝗻𝘁𝘀 𝗔𝗣𝗜 𝗧𝘆𝗽𝗲-𝗦𝗮𝗳𝗲 𝘀𝗮𝗻𝘀 𝗖𝗼𝗱𝗲𝗴𝗲𝗻
Arrêtez d'utiliser as User pour les réponses d'API.
Le cast as User est un mensonge que vous racontez à votre compilateur. TypeScript pense que les données sont correctes. À l'exécution, les données sont souvent erronées. Les bugs apparaissent trois fonctions plus tard. La stack trace n'aide pas.
Le réseau est l'endroit où il ne faut rien croire. Vérifiez les données à la frontière.
Utilisez Zod. Définissez un schéma une seule fois. Zod vous donne le type et la vérification. Vos types ne dériveront pas.
Construisez un simple wrapper pour fetch. Passez-y un schéma. Utilisez safeParse pour vérifier le corps de la réponse. Les données ne deviennent un type qu'après la vérification.
Ne lancez pas d'erreurs. Retournez un objet Result. Utilisez une union avec ok: true ou ok: false. Cela vous oblige à gérer les échecs.
Appliquez la même logique à vos URLs. Schématisez vos paramètres de requête. Évitez les fautes de frappe avant que la requête ne parte.
Utilisez Zod quand :
- Vous avez peu de points de terminaison.
- Vous n'avez pas de spécification OpenAPI.
- Vous voulez une sécurité à l'exécution.
Utilisez le codegen quand :
- Vous avez des centaines de points de terminaison.
- Vous avez une spécification parfaite.
Un cast n'est pas une vérification. Considérez as User comme une odeur de code à proximité de fetch.
Analysez à la frontière. Faites confiance à l'intérieur.
Source: https://dev.to/pavelespitia/type-safe-api-clients-in-typescript-without-a-code-generator-1k32