My TypeScript v2.2。
我有这个班级工厂:
export class A { name: string; }
export function makeConstructor(name: string)
{
const newClass = class extends A { };
newClass.prototype.name = name;
return newClass;
}
TypeScript抛出错误:
导出函数的返回类型具有或正在使用私有名称'(匿名类)'。
我可以说这个工厂返回any
来隐藏错误,但我怎么解释究竟是什么返回?
我试着写
makeConstructor<T extends A>(name: string): T
makeConstructor<T extends typeof A>(name: string): T
makeConstructor<T extends A['prototype']>(name: string): T['prototype']
答案 0 :(得分:0)
当您使用Factory设计模式时,您可能希望屏蔽Factory选择的确切实现类,而只是返回A(或其接口)。因此,我认为返回A只是诀窍,不需要泛型等......