Comment fonctionnent les types générés
Les props du composant sont typées SVGProps<SVGSVGElement>, le même type que React utilise pour l’élément <svg>. Vous bénéficiez ainsi de l’autocomplétion pour tous les attributs SVG et gestionnaires d’événements, et TypeScript rejette les props invalides dès la compilation.
Avec l’option size, les props deviennent SVGProps<SVGSVGElement> & { size?: number | string }, et width et height sont définis à partir de size. Avec forwardRef, la ref est typée Ref<SVGSVGElement>, afin que les parents puissent attacher des refs pour des mesures ou des bibliothèques d’animation.
Liste de contrôle du résultat TSX
Avant de commiter une icône générée, vérifiez que :
- le nom du composant est en PascalCase et correspond au nom du fichier (ArrowLeft.tsx) ;
- SVGProps et Ref sont importés uniquement comme types et disparaissent donc du bundle JavaScript ;
- le viewBox est présent : sans lui, l’icône ne peut pas être redimensionnée ;
- des exports nommés sont utilisés si votre base de code interdit les exports par défaut.
Compatible avec le mode strict
Le code compile avec "strict": true et avec isolatedModules, exigés par Next.js, Vite et esbuild. Aucun type any n’est généré, et la valeur par défaut de size est écrite comme littéral dans le motif de déstructuration.