export type Convert2TreeOptionsType = { primaryFieldName?: string; parentFieldName?: string; childrenFieldName?: string; isPath?: boolean; pathFieldName?: string; isClearTag?: boolean; }; /** * 数组转化成的树形结构数组中节点的类型 */ export type Convert2TreeNodeType = Record; /** * Convert2Tree 方法返回值中树形结构数组的类型 */ export type Convert2TreeReturnTreeType = Array; /** * Convert2Tree 方法返回值类型中主键与树形结构数组节点之间映射的类型 */ export type Convert2TreeReturnMapType = Record; /** * Convert2Tree 方法返回值类型 */ export type Convert2TreeReturnType = { tree: Convert2TreeReturnTreeType; map: Convert2TreeReturnMapType; }; /** * 将数组转化为树形结构数组,在转化成树形结构数组的过程中,子级元素会被添加到父级元素中指定存放 * 子级节点的数组属性中 * * @param {Array>} arr 原始数组 * @param {Convert2TreeOptionsType} options 配置选项 * - primaryFieldName 原始数组中元素的主键字段名,默认为 'id' * - parentFieldName 原始数组中元素指向父级的字段名,默认为 'parent' * - childrenFieldName 转化成树形结构数组中元素节点存放子级节点的数组属性名,默认为 'children' * - isPath 是否需要生成从根节点到当前子级节点的路径,默认为 false,生成的路径是由当前子级节 * 点的主键值加上所有父级节点的主键值组成的数组,如果当前节点为根节点,则路径为空数组 * - pathFieldName 需要生成从根节点到当前子级节点的路径时,用于存储路径数据的字段名,默认为 'path' * - isClearTag 是否需要清除原始数组中对象元素中的标记字段,默认为 `false`,在将数组转化为树形 * 结构数组的过程中,对于处理完成的对象元素会在其上添加一个标记字段 `_handled`,标记该对象元素 * 已被处理过 * @returns {Convert2TreeReturnType} 树形结构数组和映射表组成的对象,其中 tree 为树形结 * 构数组,map 为映射表,映射表的 key 为数组元素的主键值,映射表的 value 为转化成树形结构数组 * 中的节点元素 */ export declare const convert2Tree: (arr: Array>, options?: Convert2TreeOptionsType) => Convert2TreeReturnType; export type Convert2TreeType = typeof convert2Tree;