تایپ Partial در تایپ اسکریپت یک تایپ کاربردی است که دقیقا کار متضاد Required را انجام میدهد. یعنی، تمام ویژگیهای یک تایپ را به صورت اختیاری تنظیم میکند. در این مقاله قصد داریم تا روش کارکرد تایپ Partial در تایپ اسکریپت را باهم بررسی کنیم.
ما در تایپ اسکریپت میتوانیم یک تایپ را با استفاده از یک ?
به صورت اختیاری تعریف کنیم. به عنوان مثال، در کد زیر lastName
اختیاری است. بنابراین، حتی اگر firstUser
دارای تایپ User هم باشد، میتوانیم lastName
را حذف کنیم زیرا، یک ویژگی اختیاری میباشد و وجود آن ضروری نیست.
type User = { firstName: string, lastName?: string } let firstUser:User = { firstName: "John" }
گاهی اوقات، ممکن است تایپی که در کد به ارث میبریم یا از آن استفاده میکنیم تایپهای اختیاری نداشته باشد، اما میدانیم که در شرایط خاصی این احتمال وجود دارد که برخی از ویژگیها از بین رفته باشند. به عنوان مثال در قطعه کد زیر، lastName
دیگر ویژگی اختیاری نیست، اما firstUser
آن را شامل نمیشود:
type User = { firstName: string, lastName: string } let firstUser:User = { firstName: "John" }
اگر این کد را اجرا کنیم با یک خطا روبهرو میشویم، زیرا انتظار داریم که firstUser
از تایپ User، حتما ویژگی lastName
را دارا باشد:
Property `lastName` is missing in type `{ firstName: string; }` but required in type `User`.
اگر بخواهیم از بروز چنین خطایی جلوگیری کنیم، باید تایپ firstUser
را به Partial<User>
تغییر دهیم. در نتیجه این کار، به تایپ اسکریپت میگوییم که هر ویژگی در تایپ User را به صورت اختیاری تنظیم کند:
type User = { firstName: string, lastName: string } let firstUser:Partial<User> = { firstName: "John" }
در نهایت، تعریف مجدد تایپ User به صورت زیر میباشد:
type User = { firstName?: string, lastName?: string }
تنها تفاوت بین این دو کد این است که ما اکنون میتوانیم از هر دو آنها استفاده کنیم. اگر بخواهیم تایپی که داریم ویژگیهای از بین رفته را داشته باشد، میتوانیم از Partial استفاده کنیم. اگر این کار را نکنیم، فقط میتوانیم از تایپ User معمولی بهرهمند شویم:
type User = { firstName: string, lastName: string } let firstUser:Partial<User> = { firstName: "John" } let secondUser:User = { firstName: "John", lastName: "Doe" }
تایپ Partial مانند بسیاری دیگر از تایپهای utility در تایپ اسکریپت، مناسب برای کار با interfaceها یا تایپهای سفارشی هستند. در این مقاله سعی کردیم بیشتر با تایپ Partial و روش کارکرد آن آشنا شویم.
۵۰ درصد تخفیف ویژه پاییز فرانت کست تا پایان هفته
کد تخفیف: atm
دیدگاهها: