-
Notifications
You must be signed in to change notification settings - Fork 127
Open
Labels
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。
599316527 and fuchunhui