Приведение массива к NgIterable <T>в Angular 4+ (ngForOf) - PullRequest
0 голосов
/ 28 мая 2018

Я пытаюсь изменить директиву ngForOf.Директива должна получать итерируемый объект самостоятельно.Как я должен разыграть Array, чтобы получить объект типа NgIterable<T>?

// original
// @Input() ngForOf: NgIterable<T>; 


// modified
ngForOf:any;

constructor(...){
this.ngForOf = [1,2,3] // Example Array
}

с наилучшими пожеланиями,

1 Ответ

0 голосов
/ 28 мая 2018

NgIterable - псевдоним типа Array и Iterable, поэтому вам не нужно приводить.

Проблема здесь в том, что ngForOf - это NgIterable, где T не определено (по крайней мере, в коде, который мы видим) try:

@Input() ngForOf: NgIterable<number>;

constructor(...){
  this.ngForOf = [1,2,3] // Example Array
}

Так что в вашем случае вы хотите использовать generic, вам нужно будет сделать что-то вроде

import { Input, NgIterable } from '@angular/core';

export class MyForOf<T> {
  @Input() ngForOf: NgIterable<T> = [];
}
...