Как я могу сделать следующую работу, как ожидалось, в Typcript?Как создать новый экземпляр родового типа моего класса TypScript?
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, вероятно, превращает вашу публикацию в свойство. – Pricey
Я довольно уверен, что этот код: 'this.dataObject = new Object();' На самом деле не создается новый экземпляр родового. Отладчик показывает dataObject как пустой объект. –
Извините, что у меня возникла неправильная идея при первом чтении. Это может помочь вам: https://www.stevefenton.co.uk/Content/Blog/Date/201407/Blog/Creating-TypeScript-Classes-Dynamically/ – Pricey