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