تبدیل نوع (Casting)
«تبدیل نوع (Casting)» یعنی به تایپ اسکریپت بگوییم نوع را نادیده بگیر. گاهی کتابخانه ها نوع اشتباه می دهند. بنابراین، ما نوع متغیر را موقتاً عوض می کنیم. دقت کن، داده واقعاً تغییر نمی کند.
تبدیل با as
با کلیدواژه as نوع را برای استفاده بعدی مشخص می کنیم.
let x: unknown = 'hello';
console.log((x as string).length);
هشدار: تبدیل، داده را تغییر نمی دهد. اگر x عدد باشد، length وجود ندارد.
let x: unknown = 4;
console.log((x as string).length);
تبدیل با <>
استفاده از <> مثل as است؛ اما در TSX کار نمی کند.
let x: unknown = 'hello';
console.log((<string>x).length);
نکته: در فایل های React/TSX فقط از as استفاده کن.
تبدیل اجباری (Force casting)
اگر خطای تبدیل داری، اول به unknown و سپس به نوع هدف تبدیل کن.
let x = 'hello';
console.log(((x as unknown) as number).length);
اشتباه های رایج
تبدیل «رشته» به «عدد» بدون تبدیل واقعی اشتباه است. اول داده را واقعاً تبدیل کن.
console.log((4 as string).length);
گام های عملی
- اول نوع واقعی داده را بررسی کن.
- در TSX از
asاستفاده کن. - برای دورزدن خطا، از الگوی
unknown → هدفبرو.
برای پارامترها به توابع سر بزن. برای ترکیب انواع به انواع اتحادی مراجعه کن. همین صفحه تبدیل نوع را مرجع نگه دار.
جمع بندی سریع
asساده و رایج است.- <> در TSX کار نمی کند.
- داده با تبدیل عوض نمی شود.
- Force cast را با احتیاط استفاده کن.
- اول نوع واقعی را چک کن.