typescript-util
Version:
JS/TS 的简单工具
38 lines • 1.69 kB
TypeScript
import { Function, Predicate } from '../Function';
/**
* TreeTool
* @author 冰凝
* @date 2022-09-19 09:45:27
**/
export declare class TreeTool {
/**
* 根据指定子节点, 递归寻找所在树中 从根节点到指定节点路径上所有节点
* @template {Constructor<{}>} NODE
* @param data {NODE | NODE[]}树
* @param currentNode {NODE} 目标节点
* @param id {string} 判断是否相等的属性名, 默认 id
* @param child {string} 子节点属性名, 默认 children
* @return {NODE[]}
*/
static treePath<T>(data: T | T[], currentNode: T, id?: string, child?: string): T[];
/**
* 树结构遍历
* @param treeArr 源树结构数组
* @param map 需要对节点元素执行操作的映射器
* @param {[] | null} emptyChildren 空子节点使用什么值代替, 默认 []
* @param children Children 属性名, 默认 children
* @returns 映射器返回的结果的数组
*/
static treeEach<T, R>(treeArr: Array<T>, map: Function<T, R>, emptyChildren?: [] | null, children?: keyof T): Array<R>;
/**
* 构建树结构
* @param treeList 展开的节点列表
* @param filterRoot 过滤根节点的策略
* @param idKey ID 属性名
* @param pidKey parentId 属性名
* @param childrenKey children 列表 属性名
* @param leaveEmptyChildren 是否保留空的子节点, 默认不保留
*/
static buildTree<E, I extends keyof E, P extends keyof E, C extends keyof E>(treeList: Array<E>, filterRoot: Predicate<E>, idKey: I, pidKey: P, childrenKey: C, leaveEmptyChildren?: boolean): Array<E>;
}
//# sourceMappingURL=TreeTool.d.ts.map