interface Constructor<T> {↵
new (...args: unknown[]): T;↵
}↵
function createInstance<T>(ctor: Constructor<T>, ...args: unknown[]): T {↵
return new ctor(...args);↵
}↵
class User {↵
constructor(public name: string, public age: number) {}↵
}↵
class Product {↵
constructor(public title: string) {}↵
}↵
const user = createInstance(User, "Alice", 30);↵
const product = createInstance(Product, "Book");↵
console.log(user.name, product.title);