2016-06-02 5 views
1

Я пытаюсь добавить массив объектов в массив в TypeScript (для приложения Angular 2). Вот урезанная и упрощенная версия моего кода:Массив массивов в TypeScript

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

} 

Выход:

[{}] 

Что утра Я делаю неправильно?

+0

'myList' является объектом, а не массив, это ожидаемое поведение –

ответ

4

Вы не являются обязательными к свойству MyList таким образом ваш объект пуст.

Измените класс следующего

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

Добавляя public или private машинописи будет создавать свойства для вас. Теперь результат будет:

[{Number1: val, String1: val}] 
+0

Идеальный ответ, спасибо! теперь он работает :) –

1

Вы никогда не устанавливаете свойства объекта myList в своем конструкторе. Попробуйте это:

export class myList { 
    constructor(Number1: number, String1: string) { 
     this.number = Number1; 
     this.string = String1; 
    } 
} 
Смежные вопросы