I_LIKE_FOO
I_LIKE_FOO

Reputation: 2874

Array of Arrays in TypeScript

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.component.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?

Upvotes: 1

Views: 5110

Answers (2)

Dieterg
Dieterg

Reputation: 16368

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}]

Upvotes: 4

dfsq
dfsq

Reputation: 193301

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;
    }
}

Upvotes: 1

Related Questions