通用类型

在 headless 包中使用的共享类型别名。

import type {
DatePickerSize,
WeekDay,
CaptionLayout,
TimePrecision,
HourFormat,
TimePeriod,
MinuteStep,
SecondStep,
CalendarMonth,
DateUnit,
} from "react-date-range-picker-headless";

DatePickerSize

UI 尺寸变体。Headless hooks 会直接传递它而不使用它。样式化组件使用它来调整视觉尺寸。

type DatePickerSize = "x-large" | "large" | "medium" | "small";

WeekDay

星期几的字符串表示。用于 weekStartsOn 选项。

type WeekDay = "sunday" | "monday" | "tuesday" | "wednesday" | "thursday" | "friday" | "saturday";

CaptionLayout

日历标题布局模式。

type CaptionLayout = "buttons" | "dropdown";
描述
"buttons"上一月/下一月导航按钮(默认)。
"dropdown"年份和月份选择下拉框。

TimePrecision

控制显示哪些时间列。

type TimePrecision = "hour" | "minute" | "second";
显示的列
"hour"仅小时。
"minute"小时 + 分钟。
"second"小时 + 分钟 + 秒。

HourFormat

12 小时制或 24 小时制时间显示。

type HourFormat = "12" | "24";

TimePeriod

用于 12 小时制的 AM/PM 指示符。

type TimePeriod = "AM" | "PM";

MinuteStep

用于分步选择分钟的有效分钟增量值。

type MinuteStep = 1 | 2 | 3 | 5 | 10 | 15 | 20 | 30;

SecondStep

用于分步选择秒的有效秒增量值。

type SecondStep = 1 | 2 | 3 | 5 | 10 | 15 | 20 | 30;

CalendarMonth

为单个月份生成的日历数据。

interface CalendarMonth {
month: Date;
days: (Date | null)[];
weeks: (Date | null)[][];
}
字段类型描述
monthDate此日历所代表的月份。
days(Date | null)[]包含 42 个单元格(6 周 x 7 天)的一维数组。null 代表空单元格。
weeks(Date | null)[][]包含 6 周的二维数组,每周包含 7 个日期单元格。

DateUnit

用于日期工具函数(startOf, endOf, add, subtract, isSame, isBefore, isAfter, diff)的时间单位。

type DateUnit = "year" | "month" | "week" | "day" | "hour" | "minute" | "second" | "millisecond";