繁体   English   中英

typescript 展平阵列与孩子(lodash)

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM