1
我有一個名爲MyClass的類。它有一堆屬性。 我想創建一個包含該類的選項的接口。許多選項的名稱和輸入都與MyClass相同,但不是全部。Typescript:基於類創建接口
編輯:大多數選項屬性是可選的。
目標是儘可能少的複製。
現在,我使用虛擬對象來避免代碼重複。有沒有比這更清潔的解決方案?
class MyClass {
callback:(p0:number,p1:string,p2:string[]) => number[];
myAttr:number;
composed:string;
constructor(options:MyClassOptions){
if(options.callback !== undefined)
this.callback = options.callback;
if(options.myAttr !== undefined)
this.myAttr = options.myAttr;
if(options.composedP1 !== undefined && options.composedP2 !== undefined)
this.composed = options.composedP1 + options.composedP2;
}
}
var dummy = <MyClass>null;
interface MyClassOptions {
callback?:typeof dummy.callback;
myAttr?:typeof dummy.myAttr;
composedP1:string;
composedP2:string;
}
我忘了明確提到的一件事是'MyClassOptions'中的所有屬性都是可選的。該解決方案使所有屬性都是非可選的。 – RainingChain