簡體   English   中英

TypeScript:anonymouse類工廠

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM