type TypedConstructor<ConstructorType> = ConstructorType extends new (
...args: infer A
) => infer R
? new (...args: A) => R
: ConstructorType extends abstract new (...args: infer A) => infer R
? new (...args: A) => R
: never;type TypedConstructor<ConstructorType> = ConstructorType extends new (
...args: infer A
) => infer R
? new (...args: A) => R
: ConstructorType extends abstract new (...args: infer A) => infer R
? new (...args: A) => R
: never;ConstructorType
The constructor type to extract the signature from
ConstructorTypeConstructorType