3
我有一個服務,我想用它從JSON返回指定類型構建的對象。Typescript調用通用類型的靜態方法
我有一個類MyClass
,它實現了一個靜態類,它定義了一個靜態方法FromJSON
。
export interface InterfaceMyClass {
static FromJSON(json: any): any;
}
export class MyClass implements InterfaceMyClass {
constructor(){}
FromJSON(json: any): MyClass {
let instance = MyClass.create(MyClass.prototype);
Object.assign(instance, json);
// Some other code specific to MyClass
return instance;
}
}
我不知道如何調用我在服務中傳入參數的泛型類的靜態方法。 我的服務是這樣的:
export class MyService<T extends InterfaceMyClass> {
getObject() {
let json = getExternalJson(...);
return T.FromJSON(json); // <-- How to call static method FromJSON from T class ?
}
}
我想使用的服務是這樣的:
let service = new MyService<MyClass>();
let myObject = service.getObject(); // <-- Should by an MyClass instance (created by MyClass.FromJSON)
問題: 我怎樣才能調用這個方法T.FromJSON
?
獎勵問題:什麼是實現靜態方法的好方法?我不認爲從MyClass
我的FromJSON
方法是靜態的。如果我FromJSON
之前添加靜態文字,它告訴我:
[ts] Class 'MyClass' incorrectly implements interface 'InterfaceMyClass'.
Property 'FromJSON' is missing in type 'MyClass'.