[英]TypeScript: anonymouse class factory
我的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']
當您使用Factory設計模式時,您可能希望屏蔽Factory選擇的確切實現類,而只是返回A(或其接口)。 因此,我認為返回A只是訣竅,不需要泛型等...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.