function createInstance<T extends new (...args: any[]) => any>(constructor: T, ...args: ConstructorParameters<T>): InstanceType<T> {
return new constructor(...args);
}
function createInstance<T extends new (...args: any[]) => any>(constructor: T, ...args: ConstructorParameters<T>): InstanceType<T> {
return new constructor(...args);
}