angular - angular - 如何聲明對象數組

93 5

我正在學習Angular和typeScript,我寫了一些小代碼,但是我到達了屋頂,我找不到解決問題的方法。

我能夠成功聲明簡單類型和簡單類型數組,但是我無法創建一個對象數組。


someArray = new Array<ObjectType>();




class ObjectType {


 constructor( name: string, age: number) {


 }


}



然後我嘗試向數組中添加元素


someArray.push(new ObjectType('John',5) ); 



並得到一個錯誤:

Duplicate identifier'someArray'.ts(2300 )
Subsequent property declarations must have the same type . Property'someArray'must be of type'ObjectType []',but here has type'any'.ts(2717 )
app.component.ts(10,3):'someArray'was also declared here .

這怎麼可能是重複的? 謝謝你的建議

时间: 原作者:

71 1

你的語法不正確,在(class)類型中,你可以在構造函數/方法的正文中定義types/fields/methods,建議在Angular組件中始終實現介面OnInit,然後編寫在組件載入時希望執行的代碼,在模板載入之前執行ngOnInit 。


import { Component, OnInit } from '@angular/core';



@Component({


 selector: 'app-root',


 templateUrl: './app.component.html',


 styleUrls: ['./app.component.css']


})


export class AppComponent implements OnInit {



 someArray = new Array<ObjectType>();



 ngOnInit() {


 this.someArray.push(new ObjectType('John',5) );


 }


}



另外,你可能希望在創建的實例上設置構造函數中的參數,一種方法,可以通過將這些參數標記為公共或私有,取決於要提供欄位的範圍。


class ObjectType{


 constructor(public name: string, public age: number) {


 }


}



如果不希望在設置值之後更改值,則還可以添加readonly

原作者:
96 3

import { Component } from '@angular/core';



@Component({


 selector: 'app-root',


 templateUrl: './app.component.html',


 styleUrls: ['./app.component.css']


})


export class AppComponent {



 someArray = new Array<ObjectType>();


 someArray.push(new ObjectType('John',5) );


}



class ObjectType{


 constructor( name: string, age: number){


 }


}



原作者:
...