UNPKG

typescript-util

Version:

JS/TS 的简单工具

38 lines 1.69 kB
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