如何在打字稿中按预期进行以下工作?如何创建我的Typescript类的泛型类型的新实例?
export class ProxyObject<T> {
private _dataObject:T;
constructor(dataObject?:T) {
if (dataObject) {
this.dataObject = dataObject;
} else {
//create a new instance of the generic <T> here
this.dataObject = <T> new Object();
}
}
set dataObject(dataObject:T) {
this._dataObject = dataObject;
}
get dataObject():T {
return this._dataObject;
}
}
export class ClassA {
myCoolProperty = "My Cool Property";
}
当我做到以下几点:
export class MyObject extends ProxyObject<ClassA> {
}
然后:
var obj = new MyObject();
obj.dataObject.myCoolProperty === undefined
的ClassA的性能或功能的无上的dataObject存在MyObject的内侧,我所期待的。例如,我期望dataObject具有myCoolProperty。
我想写一个ProxyObject类,当扩展它的DataObject存储被键入为泛型。
谢谢!
我的猜测是你需要做'obj.dataObject()。myCoolProperty',因为生成的javascript可能会让你的public get属性成为一个函数。 – Pricey 2015-04-03 17:44:15
我相当有信心,这个代码: 'this.dataObject = new Object();' 实际上并没有创建一个新的泛型实例。调试器将dataObject显示为空对象。 –
2015-04-03 17:56:41
对不起,我最初阅读时得到了错误的想法。有这可能会帮助你:https://www.stevefenton.co.uk/Content/Blog/Date/201407/Blog/Creating-TypeScript-Classes-Dynamically/ – Pricey 2015-04-03 18:10:01