xiaohejs
Version:
🎈 小何同学的JavaScript工具箱
42 lines (41 loc) • 1.28 kB
TypeScript
import { IObjectRecord } from "../types.js";
/**
* 递归遍历树形结构数组-配置项
*
* @since 0.0.4
*/
interface IRecursiveTraversalOptions<T> {
/**
* 子节点集合属性名
*/
readonly childrenKey?: string;
/**
* 父节点数据
*/
readonly parent?: T | null;
/**
* 节点数据处理器
*
* @param item 当前节点
* @param parent 当前节点的父节点
*/
readonly processor?: ((item: T, parent?: T | null) => void) | null;
}
/**
* 递归遍历树形结构数组-默认配置项
*
* @since 0.0.4
*/
declare const DefaultRecursiveTraversalOptions: IRecursiveTraversalOptions<any>;
/**
* 递归遍历树形结构数组
*
* @since 0.0.4
* @param [array] 树形结构数组
* @param [options] 配置项
* @param [options.childrenKey="children"] 子节点集合属性名
* @param [options.parent] 父节点数据
* @param [options.processor] 节点数据处理器
*/
declare function recursiveTraversal<T extends IObjectRecord>(array: T[], options?: IRecursiveTraversalOptions<T>): void;
export { IRecursiveTraversalOptions, DefaultRecursiveTraversalOptions, recursiveTraversal };