I am familiar with accessing a property type of an interface using interfaceName['propertyName'], but how can we access the constructor?
For example:
interface PromiseConstructor {
new <T>(executor: (resolve: (value?: T | PromiseLike<T>) => void, reject: (reason?: any) => void) => void): Promise<T>;
}
class SomeNewClass<T> extends Promise<T> {
constructor(...args: ConstructorParameters<PromiseConstructor['???']<T>>) {
...
}
}