以下函数如何写成typescript?

JavaScript

function setPermissionMap(obj) {

  let temp = {}

  for (let key in obj) {
    temp[key] = {}
    obj[key].map(item => {
      temp[key][item.code] = item
    })
  }
  return temp
}

typescript

function setPermissionMap(obj:{key:string,value:any}):object {
    interface temp {
        [key: string]:object
    }
    let temp:any = {}
  
    for (let key in obj) {
      temp[key] = {}
      obj[key].map((item:any )=> {
        temp[key][item.code] = item
      })
    }
    return temp
  }

还是有问题。。。。。。

阅读 1.2k
1 个回答
interface IItem {
    code: string | number;
}

interface IItemMap {
    [key: string]: IItem;
}

interface IItemArrayMap {
    [key: string]: IItem[]
}

function setPermissionMap(obj: IItemArrayMap)
    : { [key: string]: IItemMap } {
    const temp: { [key: string]: IItemMap } = {};

    for (const key in obj) {
        temp[key] = {};
        obj[key]
            .map(item => {
                temp[key][item.code] = item
            })
    }
    return temp
}

只能从代码推导出这些类型,如果不对,那检查下是不是代码哪里写错了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题