У меня есть следующий код (упрощенно):
class Component {
}
class CameraComponent extends Component {
foo: number;
constructor(bar: number) {
super()
}
}
function doSomething(klass: typeof Component) {
}
doSomething(CameraComponent);
Это дает мне следующую ошибку:
TS2345: Argument of type 'typeof CameraComponent' is not assignable to parameter of type 'typeof Component'.
Если я изменю CameraComponent
на это, он прекрасно работает:
class CameraComponent extends Component {
foo: number;
constructor() {
super()
}
}
Есть что-то, что я пропускаю? Почему нельзя изменить подпись конструктора? Есть ли способ, которым я могу сделать эту работу, не прибегая к any
?