簡體   English   中英

在typescript中聲明數組索引

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM