typescript 继承的字段问题

新手上路,请多包涵
interface BaseInfo{
    Name: string;
    Age: number;
}

interface StudentInfo extends BaseInfo{
    ID: number;
    CreatedTime: number;
}

let dataList: StudentInfo[] = []
let editData: BaseInfo = <BaseInfo>{}

// 编辑接口参数
editApi({
    ID: ID,
    data: editData
})

获取到数据dataList是StudentInfo,要对其中某一个对象进行编辑,编辑接口传的数据内容editData是一个BaseInfo类型,不需要ID字段和CreatedTime。

editData是直接从dataList里面获取某一项,这一项里面会包含ID和CreateTime,这两个字段editData不需要。直接editData=dataList[0]或者editData=Object.assign({},dataList[0])不会报错,传参的时候会把这多余的两个字段(ID,CreatedTime)带过去。

有没有什么办法让editData从dataList获取值的时候,只取需要的字段?除了一个属性一个属性的添加。

阅读 1.8k
2 个回答
Omit<StudentInfo, 'ID' | 'CreatedTime'>

感觉可以用es6里面的解构赋值
类似于
let {a:b,c:d} = {a:12,c:34,e:56}
let test = {a:b,c:d}
//test {a:12,c:34}

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