生成的类型如何工作
组件的 props 类型是 SVGProps<SVGSVGElement>,与 React 为 <svg> 元素定义的类型相同。这样你可以获得所有 SVG 属性和事件处理器的自动补全,传入无效属性时 TypeScript 会在编译阶段报错。
开启 size 选项后,props 类型变为 SVGProps<SVGSVGElement> & { size?: number | string },width 和 height 由 size 决定。开启 forwardRef 后,ref 的类型为 Ref<SVGSVGElement>,父组件可以把 ref 交给测量工具或动画库使用。
TSX 输出检查清单
提交生成的图标之前,请确认:
- 组件名为 PascalCase,并与文件名一致(ArrowLeft.tsx)。
- SVGProps 和 Ref 只通过类型导入引入,在 JavaScript 包中会被完全移除。
- 保留了 viewBox;没有它,图标就无法缩放。
- 如果代码规范禁止默认导出,请改用具名导出。
兼容严格模式
生成的代码可以在 "strict": true 和 isolatedModules 下编译通过,满足 Next.js、Vite 和 esbuild 的要求。不会生成任何 any 类型,size 的默认值直接写在解构参数中。