یک نکتهی جالبی در تعریف تایپها در typescript برخوردم که گفتم اینجا هم یک یادداشتی برای آن بنویسم.
وقتی که یک type تعریف می کنید که این تایپ، چند مقدار ثابت به همراه یک تایپ عمومی باشد، هنگام autocomplete در ادیتور فقط تایپ عمومی را می آورد.
همیشه برای من سوال بود که چرا وقتی من از این مدل type ها تعریف میکنم، مقادیر ثابت را در هنگام استفاده نمی آورد.
با یک مثال توضیح می دهم:
فرض کنیم، تایپی که من تعریف می کنم چیزی شبیه این باشد:
type Variants = 'h1' | 'h2' | string ;
یعنی variant می تواند h1 یا h2 یا یک string باشد. اما متاسفانه چیزی که در موقع استفاده می بینیم چیزی شبیه این است:
می بینید که h1 و h2 را نمی آورد. برای حل این مساله، باید تایپ را به صورت زیر تعریف کنید:
type Variants = 'h1' | 'h2' | (string & {});
و خروجی شما درست خواهد شد.
می بینید که h1 و h2 را اینبار می آورد.