У меня есть ванильный JS проект, который я хотел бы использовать (и в конечном итоге перейти на) машинопись. Я начинаю с написания некоторых файлов объявлений.
Класс javascript, который я пытаюсь создать для расширений экземпляров другого класса, например:
class Parent {}
const ParentInstance = () => class extends Parent {}
const ChildInstance = (InstanceParent) => class extends InstanceParent {}
class Thing {
constructor () {
this.ParentInstance = ParentInstance()
this.Child = ChildInstance(this.ParentInstance)
}
}
let thing1 = new Thing()
let thing2 = new Thing()
let childOf1 = new thing1.Child()
childOf1 instanceof thing1.Child // true
childOf1 instanceof thing2.Child // false
В результате c
является экземпляром Child
такой, что его цепочка прототипов строго привязана к конкретному c экземпляру Thing
. Как я могу говорить об этом виде наследования прототипов в Typescript?
declare class Thing {
Child: Child<?instance constructor?>
}
Ссылка на игровую площадку. как определить T
здесь?