[英]Declare array index in typescript
我有這個AjaxResponse接口:
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])
}
編輯日期功能如下:
editDates(newDate: AjaxResponse['calendar']['dates']) {
}
dates[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接口的解決方案也是可能的,但如果需要,您可以保留一種類型。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.