import { ChangeEvent, ReactText, ReactNode } from 'react'; export interface CheckboxEvent extends Omit, 'target'> { target: { checked: boolean; value?: ReactText; }; } export interface CheckboxProps { /** 表单项名称 */ name?: string; /** 是否选中 */ checked?: boolean; /** 默认是否选中 */ defaultChecked?: boolean; /** * 切换选中状态的回调函数 * * @param {CheckboxEvent} e 事件 * @return {void} */ onChange?(e: CheckboxEvent): void; /** 是否禁用 */ disabled?: boolean; /** value 值 */ value?: ReactText; children?: ReactNode; className?: string; } export interface Option { /** 是否禁用 */ disabled?: boolean; /** 显示标签 */ label: string; /** key */ key?: ReactText; /** value 值 */ value: ReactText; } export interface CheckboxGroupProps { /** 默认选中的值 */ defaultValue?: ReactText[]; /** 是否禁用 */ disabled?: boolean; options: Option[]; /** 选中的值 */ value?: ReactText[]; /** 变更选中项的回调函数 */ onChange?: (checkedValue: ReactText[]) => void; }