איך לקבל את הגדרות הטיפוסים של כל קומפוננטת ריאקט ב TypeScript
בעבודה עם TypeScript כפי שקל להבין לפי שם השפה, אנחנו צריכים להגדיר טיפוס לכל משתנה. עם רוב המשתנים זה לא בעיה אבל מדי פעם אתם רוצים להגיד משהו פרוע כמו "אני מוכן לקבל כל מה ש input מוכן לקבל". לדוגמה בקומפוננטה הזו שמייצרת input יחד עם label:
function InputWithLabel(props: {...}) {
const { label } = props;
return (
<label>{label}</label>
<input type="text" {...props} />
);
}
ל TypeScript יש פיתרון נוח למצבים אלה שנקרא React.ComponentProps וזה נראה כך:
type InputProps = React.ComponentProps<'input'>
עכשיו אפשר לחזור לקומפוננטה שלנו ולכתוב:
function InputWithLabel(props: { label: string } & InputProps) {
const { label } = props;
return (
<>
<label>{label}</label>
<input type="text" {...props} />
</>
);
}