export type Transform = | { label: string value: string children: string parentId: string } | ((option: Option, index: number, level: number) => Option) export interface IConfig { /** 地址路径 */ path?: Array /** 请求传递的参数 */ params?: AnyKeyProps /** 转换方法 */ transform?: Transform /** 是否保留原始数据 */ keepOrigin?: boolean /** 是否转换成树 */ toTree?: boolean /** 是否自动加载 */ autoload?: boolean /** 请求完成监听 */ onLoad?: ({ options, tree, data, loading }: any) => any } export type useOptions = ( api: Promise, config: IConfig ) => { options: Array