這就是我的界面的樣子:
export interface Services {
[section: number]: [
{
uid: number,
service: string,
description: string,
hourlyRate: number,
hours: number,
price: number,
serviceIsDisabled: boolean,
serviceIsMandatory: boolean
}
]
}
export interface ServiceDataToDialog {
key: number,
section: number,
[section: number]: {
service: string,
description: string,
hourlyRate: number,
hours: number,
price: number,
serviceIsDisabled: boolean,
serviceIsMandatory: boolean,
officialHourlyRate: number,
allServices: Array<Services>
}
}
我正在嘗試service從 interface獲取 value Services。
這是我嘗試過的:
constructor(private _dialogRef: MatDialogRef<DialogServiceTabletAddRowComponent>, private _fb: FormBuilder, @Inject(MAT_DIALOG_DATA) public data: ServiceDataToDialog) {
console.log(data[0].allServices?.[0]?.[0], 'Object of allServices');
console.log(data[0].allServices?.[0]?.[0]?.[0]?.service, 'A service');
這就是我得到的:

為什么第二個 console.log 未定義?
我也試過了,data[0].allServices?.[0]?.[0].service但后來我得到了這個錯誤:
TS2339: 型別 '[{ uid: number; 上不存在屬性'服務';服務:字串;描述:字串;hourlyRate:數字;小時:數字;價格:數量;serviceIsDisabled:布林值;serviceIsMandatory:布林值;}]'。
uj5u.com熱心網友回復:
我不知道你的資料結構,但我認為你的介面定義不正確。嘗試將其更改為:
export interface Services {
[section: number]:{
uid: number,
service: string,
description: string,
hourlyRate: number,
hours: number,
price: number,
serviceIsDisabled: boolean,
serviceIsMandatory: boolean
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/487293.html
