xiaohejs
Version:
🎈 小何同学的JavaScript工具箱
45 lines (44 loc) • 1.27 kB
TypeScript
import { IObjectRecord } from "../types.js";
/**
* 扁平数组转树形结构数组-配置项
*
* @since 0.0.4
*/
interface IFlat2TreeOptions<T> {
/**
* 节点唯一标识属性名
*/
readonly key?: string;
/**
* 父节点唯一标识属性名
*/
readonly parentKey?: string;
/**
* 节点数据处理器
*
* @param item 当前节点
*/
readonly processor?: (item: T) => T;
}
/**
* 扁平数组转树形结构数组-默认配置项
*
* @since 0.0.4
*/
declare const DefaultFlat2TreeOptions: IFlat2TreeOptions<any>;
/**
* 扁平数组转树形结构数组
*
* @since 0.0.4
* @template T
* @param [array] 扁平数组
* @param [options] 配置项
* @param [options.key="id"] 节点唯一标识属性名
* @param [options.parentKey="pid"] 父节点唯一标识属性名
* @param [options.processor=(item)=>(item)] 节点数据处理器
* @returns {T[]} 树形结构数组
*/
declare function flat2tree<T extends IObjectRecord & {
children?: T[];
}>(array: T[], options?: IFlat2TreeOptions<T>): T[];
export { IFlat2TreeOptions, DefaultFlat2TreeOptions, flat2tree };