Arrays 在typescript中声明数组索引
我有这个AjaxResponse接口:Arrays 在typescript中声明数组索引,arrays,typescript,object,Arrays,Typescript,Object,我有这个AjaxResponse接口: interface AjaxResponse { calendar: { dates: { date: string, hours: { hour: string, id: number, status: string, client: {
interface AjaxResponse {
calendar: {
dates: {
date: string,
hours: {
hour: string,
id: number,
status: string,
client: {
name: string,
surname: string,
email: string,
phone: string,
id: number
}
}[]
}[]
},
rights: string,
listenerUrl: string
}
我将遍历日期列表并编辑其中一些日期:
let dates: AjaxResponse['calendar']['dates']
let i: number
let l: number
receive(response: AjaxResponse) {
dates = response.calendar.dates
l = dates.length
for (i; i < l; i++) {
calendar.editDates(dates[i])
}
日期[i]
无法编译,因为我的上一个函数需要一个数组。如何在上一个函数中声明单个日期而不是日期列表
编辑:通过创建两个接口找到工作解决方案:
interface AjaxResponse {
calendar: {
dates: AjaxResponseDate[]
},
rights: string,
listenerUrl: string
}
interface AjaxResponseDate {
date: string,
hours: {
hour: string,
id: number,
status: string,
client: {
name: string,
surname: string,
email: string,
phone: string,
id: number
}
}
}
要获取数组中项目的类型,可以通过
number
使用类型查询:
function editDates(newDate: AjaxResponse['calendar']['dates'][number]) {
}
拥有t接口的解决方案也是一种可能的解决方案,但如果需要,可以保留一种类型 是的,两者都可以用,但你的回答完全符合我的提问。谢谢
function editDates(newDate: AjaxResponse['calendar']['dates'][number]) {
}