Welcome toVigges Developer Community-Open, Learning,Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
136 views
in Technique[技术] by (71.8m points)

以下函数如何写成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
  }

还是有问题。。。。。。


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)
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
}

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


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to Vigges Developer Community for programmer and developer-Open, Learning and Share
...