پریدن (skip) از بعضی تایپ های جنریک در تعریف تایپ در تایپ اسکریپت

typescript

#1

سلام
آیا راهی هست که بشه یک تایپ جنریک رو که آپشنال هست رو در تعریف تایپ پرید ازش.
به طور مثال من یک تایپ به صورت زیر تعریف کردم:

type TDefaultViewStyleKeys ={
  containerStyle: any
}
type TTextStyleKeys = {
  textStyle: any
}

export type TViewStyles<T> = {
  [key in keyof T]?: StyleProp<ViewStyle>
};
export type TTextStyle<T> = {
  [key in keyof T]?: StyleProp<TextStyle>
}

export type TStyles<ViewStyleKeys=TDefaultViewStyleKeys, TextStyleKeys = TTextStyleKeys> = TViewStyles<ViewStyleKeys> & TTextStyle<TextStyleKeys>

حالا وقتی میخوام از این تایپ TStyles استفاده کنم نیاز هست به صورت زیر ازش استفاده کنم:

type TTextStyleKeys = {
  labelStyle: any,
  textInputStyle:any
}
type TStyleInput = TStyles < ,TTextStyleKeys>

برای اینکار یعنی پریدن از یک متغیر در تعریف تایپ آیا راهی هست؟


#2

منظور از پریدن را متوجه نمیشم
میشه با فرض اینکه تیپ ساختین مثال کدی که میخواهید و بنویسید؟
فکر کنم یک interface میخواهید با optional param
اما کامل هدفتونو متوجه نشدم


#3
export type TStyles<ViewStyleKeys = TDefaultViewStyleKeys, TextStyleKeys = TTextStyleKeys> = TViewStyles<ViewStyleKeys> & TTextStyle<TextStyleKeys>;

همانطور که میبیند این تایپ دوتا جنریک آپشنال میگیره.
حالا من توی یک نوع تایپ نیاز دارم که اولین جنریک همون پیش فرض باشه ولی دومی رو خودم بهش بدم.

type TStyleInput = TStyles <'انیجا رو چجوری مشکلش حل کنم' ,TTextStyleKeys>;

یه چیزی تو vb.net بود که اگه آپشنال رو میخواستیم همون مقدار پیش فرض باشه خالی میذاشتیم جاشو.

آیا همچنین چیزی در تایپ اسکریپت هست. یک بحثی هم اینجا شده ولی انگار به نتیجه نرسیدن


#4

مثل اینکه همچنین کاری نمیشه در TS انجام داد


#5

ممنونم که وقت گذاشتید.