Skip to content

时间日期相关组件接口问题 #814

Open
@Justineo

Description

@Justineo

目前 DatePickervalue 类型为 DateTimePickervalue 类型为 string(例如 '10:08'),后续可能还会支持 DateTimePickervalue 类型应该会是 Date。这样感觉其实有点奇怪。由于后续 JavaScript 应该会原生支持 Temporal,可以考虑将三者的接口分别对应到 Temporal.PlainDate/Temporal.PlainTime/Temporal.PlainDateTimefrom 方法参数上面(也需要考虑 DatePicker[type="year"]DatePicker[type="month"]),已保证未来可以方便地构造 Temporal 对象。

Ps. 发现 TimePicker 用的 modeDatePicker 用的 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 开始的,而是更符合直觉的 112

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions