将数组转换为 Angular 中的 NgIterable<T> 4+ (ngForOf)

Casting an array to NgIterable<T> in Angular 4+ (ngForOf)

我正在尝试修改指令 ngForOf 指令。该指令应自行获取可迭代对象。我如何强制转换 Array 以获得类型 NgIterable<T> 的对象?

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


// modified
ngForOf:any;

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

此致,

NgIterableArrayIterable 的类型别名,因此您不必强制转换。

这里的问题是 ngForOf is NgIterable where T is not defined (至少在代码中我们可以看到)try:

@Input() ngForOf: NgIterable<number>;

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

所以在你的情况下,你想使用泛型,你需要做一些事情,比如

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

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