我在Typescript中有一个自定义数组类型类。我没有扩展它,因为它带来的困难,所以我只使用一个私有数组,每次我想使用数组方法时我必须直接引用它。
export class ObjectCollection<T extends ICollection> {
public _Collection: T;
public get Collection(): T {
return this._Collection;
}
public getInstance: (id: string) => IListItem;
constructor(collection: T) {
this._Collection = collection;
// used for getting instance from a collection of objects
this.getInstance = (id: string): IListItem => {
let instance = new Array<IListItem>();
instance = this.Collection.filter(item => item.Id.toString() ===
id.toString());
if (instance && instance.length > 0) {
return instance[0];
}
return new Object as IListItem;
};
}
}
如果我想从对象调用getInstance,我可以使用newobjectinstance.getInstance()。如果我想使用.map或本机数组函数,那么我必须调用newobjectinstance.Collection.map()。
如果我可以调用newobjectinstance.map()或newobjectinstance.length,那将会更加清晰。我怎么能改变我的代码以便这可能呢?
我简要介绍了代理,但在这种情况下无法弄清楚如何使用它们。它不是一个最佳的解决方案,因为它是一个反应应用程序,并且代理不会被babel轻易地转化。如果这是唯一的选择,我会尽力适应,但任何其他建议都会让我感到高兴。