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){


 }


}



原作者:
...