How the generated types work
The component's props are typed as SVGProps<SVGSVGElement>, the same type React uses for the <svg> element. That gives you autocompletion for every SVG attribute and event handler, and TypeScript will reject invalid props at compile time.
With the size option enabled the props become SVGProps<SVGSVGElement> & { size?: number | string }, and width and height are set from size. With forwardRef enabled the ref is typed as Ref<SVGSVGElement>, so parents can attach refs for measurement or animation libraries.
TSX output checklist
Before committing a generated icon, check that:
- The component name is PascalCase and matches the file name (ArrowLeft.tsx).
- Only type imports are used for SVGProps and Ref, so they disappear from the JavaScript bundle.
- The viewBox is present; without it the icon cannot scale.
- Named exports are used if your codebase forbids default exports.
Strict mode friendly
The code compiles with "strict": true and with isolatedModules, which Next.js, Vite and esbuild require. No any types are generated, and default values for size are written as literal defaults in the destructuring pattern.