[英]typescript flatten array with children (lodash)
我试图奉承一组对象,每个对象都可以包含像 typescript 这样的子对象:
function getMenu (menus:Array<Menu>, name:string | undefined) {
console.log('getMenu', name, menus[0])
const test = _(menus)
.thru(function (coll) {
return _.union(coll, _.map(coll, 'children') || [])
})
console.log('getMenu 2', test)
return name
}
我有一个阻止我的错误:'Menu[][]' 类型的参数不可分配给'List' 类型的参数。 索引签名不兼容。 “菜单 []”类型缺少“菜单”类型的以下属性:label、图标、路线、可选择和另外 2 个。
注意:代码在 javascript 中运行良好
_.map(coll, 'children')
返回菜单[][]。 我们应该将其展平以使其成为 Menu[]。
试试下面的代码:
function getMenu(menus: Array<Menu>, name: string | undefined) {
console.log('getMenu', name, menus[0]);
const test = _(menus).thru(function(coll) {
const flattenData = flatten(_.map(coll, 'children')); // flattening the data here
return _.union(coll, flattenData);
});
return name;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.