比如后台返回一个list,是object[],里面有id,name,age什么的,我在操作时只需要id和name,那我怎么定义这个list的每一项,item:{id:number,name:string,[key: string]:any}这样吗,有没有什么写法可以不用[key: string]:any,
###interface Item extends Record<string, unknown> {
id: number;
name: string;
}
interface List extends Array<Item> {}
P.S. 如果你的业务里压根不需要其他的属性,其实你也可以压根不声明它们……
###定义这样就行
只定义你用到的就可以 当然 你也可以把 [key?: string]: any加进去
interface Obj {
id: number;
string: number;
age: number;
}
// list 就可以这样定义
list: Array<Obj> =
// 或者
list: obj[] = ;
###没懂你的意思?
你想要灵活定义数组?
interface BaseItem {
id: string
age: number
name: string
}
type List<T = any> = Array<BaseItem & T>
const list: List = []
const listOld: List = [{
id: '025sf',
age: 18,
name: '小明'
}]
const listMore: List<{ old: boolean }> = [{
id: '025sf',
age: 18,
name: '小明',
old: true
}]