【发布时间】:2016-12-30 23:19:18
【问题描述】:
我有一个名为 MyClass 的课程。它有一堆属性。 我想创建一个包含该类选项的接口。许多选项与 MyClass 具有相同的名称和类型,但不是全部。
编辑:大多数选项属性都是可选的。
目标是尽可能少地复制。
现在,我正在使用虚拟对象来避免代码重复。还有比这更清洁的解决方案吗?
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;
}
【问题讨论】:
标签: javascript class typescript