Функция Register создается путем вызова Register('something')
. Typcript говорит, что это возможно только в том случае, если new
используется для функции возврата void
. В этом случае Register
возвращает экземпляр сам по себе. Как я должен набирать это в TypScript?TypeScript - как ввести функцию самообновления
module Register {
export function Register(x: string): Instance {
if (!(this instanceof Register)) {
return new Register(x)
}
this.value = x
}
...
export interface Instance {
new(x: string): Instance;
...
}
}
export = Register
Ответ на этот вопрос вероятно, это: «Вы не должны делать это в TypeScript», но вместо этого вы должны использовать классы и статические методы. – Niko
Надеюсь, что нет. Кажется, это законная конструкция для меня. – donnut
Похожие вопросы: [Как работают типы машинописных подписей с конструкторскими сигнатурами?] (Http://stackoverflow.com/questions/13407036/how-does-typescript-interfaces-with-construct-signatures-work) и [IOC для TypeScript] (http://stackoverflow.com/questions/12795666/ioc-for-typescript) – xmojmr