我需要一些幫助,我不知道如何從我的服務中的函式宣告屬性和引數來像這樣推送我的服務的資料
export class AccountsService {
accounts = [
{
id: 1234556,
name: 'Master ',
age: 23,
gender: 'male',
professions: 'butcher',
maritalStat: 'single',
address: [
{road: 'Suspendisse St.'},
{number: '56'},
{region: 'Los Ríos'},
{city: 'Armenia'},
{country: 'Norway'},
]
},
{
id: 1234556,
name: 'Zenaida Carey ',
age: 29,
gender: 'female',
professions: 'teacher',
maritalStat: 'married',
address: [
{road: 'Sagittis Road'},
{number: '5'},
{region: 'Ríos'},
{city: 'sidney'},
{country: 'Australia'},
]
},
];
addAccount(id:number, name:string, age: number, gender:string, professions:string, maritalStat:string, road:string, number:number, region:string, city:string, country:string ){
this.accounts.push({id:id, name: name, age: age, gender:gender, professions:professions, maritalStat:maritalStat, [address]:address.name });
}
在方法 addAccount 中,我收到錯誤,因為我不知道如何宣告屬性地址,因為它的嵌套陣列希望你能幫助我。
uj5u.com熱心網友回復:
創建一個新的帳戶物件:
let account = {
id: id,
name: name,
....
}
在您的 addAccount 方法中執行以下操作:
this.accounts = [...this.accounts, account];
為什么它有效?我們正在創建一個新的帳戶物件并利用 JavaScript 的擴展運算子我們說“給我一個包含當前所有屬性的陣列,并將新的帳戶物件添加到其中”。
這種擴展運算子也可以用于嵌套陣列,并且在您開始使用某種存盤(又名 redux)架構時特別強大,因為您將大量使用它來保持不變性。
理想情況下,為了更簡潔的代碼,我會修改您的 addAccount 方法以接受帳戶物件。這樣你的方法簽名就更短更清晰了。
uj5u.com熱心網友回復:
地址的作業方式有點奇怪,因為它是一個包含不同型別物件的陣列。如果地址看起來像這樣會更有意義:
{
road: 'Sagittis Road',
number: 5,
region: 'Ríos',
city: 'sidney',
country: 'Australia',
}
另請閱讀有關型別安全的資訊,以便您可以使用 Typescript 來發揮它的潛力。您應該使用介面來定義帳戶的外觀。
無論如何,要讓您的代碼按您的方式作業 - 這應該有效:
addAccount(id: number, name: string, age: number, gender:string, professions: string, maritalStat: string, road: string, number: number, region: string, city: string, country: string): void {
const account = {
id, name, age, gender, professions, maritalStat, address: [
{road},
{number},
{region},
{city},
{country}
]
};
this.accounts.push(account);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/409346.html
標籤:
