Como funcionam os tipos gerados
As props do componente são tipadas como SVGProps<SVGSVGElement>, o mesmo tipo que o React usa para o elemento <svg>. Assim você tem autocompletar para todos os atributos SVG e manipuladores de evento, e o TypeScript rejeita props inválidas em tempo de compilação.
Com a opção size ativada, as props passam a ser SVGProps<SVGSVGElement> & { size?: number | string }, e width e height vêm de size. Com forwardRef ativado, a ref é tipada como Ref<SVGSVGElement>, permitindo que o pai anexe refs para medições ou bibliotecas de animação.
Checklist do resultado em TSX
Antes de fazer commit de um ícone gerado, verifique se:
- O nome do componente está em PascalCase e bate com o nome do arquivo (ArrowLeft.tsx).
- SVGProps e Ref são importados apenas como tipos e, por isso, somem do bundle JavaScript.
- O viewBox está presente; sem ele, o ícone não consegue escalar.
- Exportações nomeadas são usadas se o seu código proíbe exportações padrão.
Compatível com o modo strict
O código compila com "strict": true e com isolatedModules, exigidos por Next.js, Vite e esbuild. Nenhum tipo any é gerado, e o valor padrão de size é escrito como literal no padrão de desestruturação.