2016-08-04 4 views
0

Для данного класса я объявляю несколько частных переменных в конструкторе и совершая некоторые вызовы. Я могу получить ошибку провайдера в объявлении массива, когда включаю его в конструктор, и никаких ошибок при объявлении его вне конструктора.Ошибка объявления типизированного массива TypeScript

Этот код работает, безошибочной

private data: Array<MyType>; 

    constructor(private service: Service) { 
    this.service.getData().then(response => this.data = response.json()); 
    } 

Тогда, как ни парадоксально, ниже не работает, и выдает ошибку найденную ниже фрагмент кода.

constructor(private data: Array<MyType>, private service: Service) { 
    this.service.getData().then(response => this.data = response.json()); 
    } 

Ошибка из консоли

EXCEPTION: Error: Uncaught (in promise) ORIGINAL EXCEPTION: No provider for Array!

ли это какая-то ошибка синтаксиса? Я ужасно недопонимаю концепцию? Обе реализации кажутся одинаковыми и чувствуют, что они должны вести себя точно так же.

+0

Я полагаю, это Угловое? –

ответ

1

Код эквивалентен ... кроме вызова конструктора. ;)

В первом случае:

new TheClass(service); 

Во втором случае:

new TheClass(somethingHere, service); 
Смежные вопросы