My TypeScript v2.2.TypeScript: anonymouse class factory
У меня есть этот класс фабрика:
export class A { name: string; }
export function makeConstructor(name: string)
{
const newClass = class extends A { };
newClass.prototype.name = name;
return newClass;
}
машинописи ошибка броска:
Return type of exported function has or is using private name '(Anonymous class)'.
Я могу сказать, что этот завод возвращает 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']
Этот код [работает] (http://www.typescriptlang.org/play/#src=export%20class%20A%20 % 7B% 20name% 3A% 20string% 3B% 20% 7D% 0D% 0A% 0D% 0Aexport% 20function% 20makeConstructor (имя% 3A% 20string)% 0D% 0A% 7B% 0D% 0A% 20% 20const% 20newClass% 20% 3D% 20class% 20extends% 20A% 20% 7B% 20% 7D% 3B% 0D% 0A% 0D% 0A% 20% 20% 20newClass.prototype.name% 3D% 20name% 3B% 0D% 0A% 0D% 0A% 20% 20return% 20newClass% 3B% 0D% 0A% 7D) on TypeScript 2.1 ... – Paleo