Open
Description
目前 DatePicker
的 value
类型为 Date
,TimePicker
的 value
类型为 string
(例如 '10:08'
),后续可能还会支持 DateTimePicker
,value
类型应该会是 Date
。这样感觉其实有点奇怪。由于后续 JavaScript 应该会原生支持 Temporal,可以考虑将三者的接口分别对应到 Temporal.PlainDate
/Temporal.PlainTime
/Temporal.PlainDateTime
的 from
方法参数上面(也需要考虑 DatePicker[type="year"]
和 DatePicker[type="month"]
),已保证未来可以方便地构造 Temporal
对象。
Ps. 发现 TimePicker
用的 mode
,DatePicker
用的 type
,也需要统一一下。
interface DatePickerDayValue {
year: number,
month: number,
day: number
}
interface DatePickerMonthValue {
year: number,
month: number
}
interface TimePickerValue {
hour: number,
minute: number,
second: number
}
interface DateTimePickerValue extends DatePickerDateValue, TimePickerValue {}
组件 | type |
value 类型 |
---|---|---|
DatePicker |
day |
DatePickerDayValue |
DatePicker |
month |
DatePickerMonthValue |
DatePicker |
year |
number |
TimePicker |
/ | TimePickerValue |
DateTimePicker |
/ | DateTimePickerValue |
兼容性和迁移
可以考虑添加一个 temporal
prop,来开启新的接口,未来 major 版本升级的时候切换到新的逻辑上,把当前的兼容处理去除。未开启的情况下,可以考虑 warning 提示升级。
另外,Temporal
接口的 month
不是从 0
开始的,而是更符合直觉的 1
–12
。
Activity