admin管理员组

文章数量:1425997

I'm trying to add an object array to an array in TypeScript (for an Angular 2 app). Here's a stripped down and simplified version of my code:

mylist.ts:

export class myList {
    constructor(
        Number1: number,
        String1: string
    ){}
}

mylistponent.ts:

import { myList } from './myList';

export class ProductDetailComponent { 

    myNumber: number;
    myString: string;

    myList: Array<myList>;

    constructor() {
        this.myNumber = 10;
        this.myString = "some text";
    }

    addNavigation() {
        this.myList = [ new myList(this.myNumber, this.myString) ];
        console.log(JSON.stringify(this.myList));
    }

}

Output:

[{}]

What am I doing wrong?

I'm trying to add an object array to an array in TypeScript (for an Angular 2 app). Here's a stripped down and simplified version of my code:

mylist.ts:

export class myList {
    constructor(
        Number1: number,
        String1: string
    ){}
}

mylist.ponent.ts:

import { myList } from './myList';

export class ProductDetailComponent { 

    myNumber: number;
    myString: string;

    myList: Array<myList>;

    constructor() {
        this.myNumber = 10;
        this.myString = "some text";
    }

    addNavigation() {
        this.myList = [ new myList(this.myNumber, this.myString) ];
        console.log(JSON.stringify(this.myList));
    }

}

Output:

[{}]

What am I doing wrong?

Share Improve this question asked Jun 2, 2016 at 8:27 I_LIKE_FOOI_LIKE_FOO 2,8743 gold badges19 silver badges18 bronze badges 1
  • myList is an object, not an array, this is expected behaviour – Robin-Hoodie Commented Jun 2, 2016 at 8:29
Add a ment  | 

2 Answers 2

Reset to default 4

You're not binding to a property of MyList thus your object is empty.

Change your class to the following

export class myList {
    constructor(
        public Number1: number,
        public String1: string
    ){}
}

By adding public or private TypeScript will create properties for you. Now the result will be:

[{Number1: val, String1: val}]

You never set properties of the myList object in its constructor. Try this:

export class myList {
    constructor(Number1: number, String1: string) {
        this.number = Number1;
        this.string = String1;
    }
}

本文标签: javascriptArray of Arrays in TypeScriptStack Overflow