如何正确设置MUI-X DatePicker中DatePickerProps的泛型类型?
解决MUI DatePickerProps泛型类型问题
你当前使用AdapterDateFns作为日期适配器,对应的原生日期类型是JavaScript的Date对象,因此应该将DatePickerProps的泛型参数设置为Date,而非unknown。
修改后的组件代码如下:
function CustomDatePicker(props: DatePickerProps<Date> & React.RefAttributes<HTMLDivElement>) { return ( <StyledDatePicker disableHighlightToday format={DEFAULT_DATE_FORMAT} slots={{ openPickerIcon: IconCalendar, }} {...props} /> ); }
这样修改后,onChange回调的value类型会自动推导为Date | null,使用时无需再手动做类型断言:
<CustomDatePicker onChange={(value) => { onChangeDate(value); // 直接使用,类型已正确推导 }} />
原因在于AdapterDateFns内部基于原生Date对象处理日期逻辑,将泛型指定为Date后,MUI的DatePicker组件会自动匹配适配器对应的日期类型,确保所有回调的参数类型准确。
内容的提问来源于stack exchange,提问作者qud
相关产品推荐
相关产品推荐

