我想为树结构定义一个接口。
每个节点可以有零个或多个子节点:
export interface TreeNode {
children?: Array<TreeNode>;
}
我已经为s实现了一个遍历函数。TreeNode
export function traverseTree(treeData: Array<TreeNode> | TreeNode, callback: (treeNode: any) => any) {
// implementation omitted
}
我想测试它。代码如下:
const treeData = [
{
name: "root_1",
children: [
{
name: "child_1",
children: [
{
name: "grandchild_1"
},
{
name: "grandchild_2"
}
]
}
]
},
{
name: "root_2",
children: []
}
];
const traversingHistory = [];
const callback = (treeNode: any) => {
traversingHistory.push(treeNode.name);
}
traverseTree(treeData, callback);
但是,编译失败,因为 类型的参数不能应用于 。treeDatatraverseTree
我不想向接口添加属性,因为树节点可以具有动态属性。如何修改接口以接受更通用的类型?nameTreeNodeTreeNode
慕斯709654
qq_笑_17
饮歌长啸
相关分类