TS in React
#
Installبرای استفاده از ts
می توان از دستورات زیر برای ساخت یک پروژه پیکربندی شده با ts
استفاده کرد:
یا اگر پروژه ما از قبل ساخته شده است و می خواهیم ب آن ts
را اضافه کنیم، می توان از پکیج های زیر استفاده کنیم:
🎉 همچنین باید دقت داشت ک بعد از نصب پکیج ها باید تمام فایل های js
و jsx
را ب ts
و tsx
تبدیل کنیم و یکبار پروژه را reset
کنیم.
🎉 همچنین باید حواسمان باشد ک بعد از تغییر فرمت فایل ها، حال باید تایپ ها را در پروژه درست کنیم و پارامتر ها، آرگومان ها و خیلی موارد دیگر را تایپ دهی کنیم.
#
Tips🎉 بعضی از پکیج هایی ک در پروژه های ts
نصب می کنیم، باید ب صورت جداگانه حتما type
های آن را نیز نصب کنیم وگرنه ب ارور می خوریم، مثل نمونه پایین:
#
propsمی توان به صورت زیر کامپوننت و prop
ها در tsx
استفاده کرد، در واقع در این روش می توان هم برای prop
و هم برای کامپوننت type
مشخص کرد:
که روش دوم بهتر است زیرا ts
متوجه کامپوننت می شود.
🎉 برای استفاده از children
در tsx
بهتر است از روش دوم استفاده شود زیرا ts
کامپوننت را می شناسد، در روش اول باید حتما در interface
حتما children
را تعریف کنیم.
#
stateبرای تعریف type
برای state
ها میتوان به صورت زیر عمل کرد و برای هر useState
از یک generic
خاص استفاده کرد:
🎉 اگر این کار را انجام ندهیم، خود ts
برای متغییری مثل guests
از تایپ []never
استفاده می کند
#
Unionدر react
هم می توان از union
تایپ ها نیز استفاده کرد ک بسیار کاربردی می باشد، زمانی ک بخواهیم مشخص کنیم ک یک متغییر امکان دارد ک چند تایپ داشته باشد، از آن استفاده می کنیم:
#
eventبرای اینکه از event
در توابع خود استفاده کنیم، باید حتما تایپ را برای آن ها نیز مشخص کنیم:
🎉 برای راحتی کار، میتوان موس را روی event
مورد نظر قرار داد و تایپ مربوط به آن را کپی کنیم و در تابع خود استفاده کنیم.
#
refبرای ref
نیز باید تایپ تگی که به آن رفرنس زدیم را مشخص کنیم و مقدار اولیه آن را null
قرار دهیم، زیرا هنگام لود شدن، به چیزی رفرنس نمی شود:
🎉 اگر در tsconfig.json
بجای jsx: preserve
یا jsx: react
از jsx: react-jsx
استفاده کنیم، دیگر نیازی ب import
کردن react
در همه کامپوننت ها نیست ( این قابلیت از ورژن 17 به بعد ب react
اضافه شده است )
🎉 هرگاه بخواهیم در یک آبجکت در interface
کاری کنیم ک بتوان ب صورت دلخواه، در جاهای مختلف از پراپرتی های مختلف استفاده کنیم، باید ب صورت زیر عمل کنیم: