type ServiceDepencency = new (services: Services) => T; class Services { #instances: Map, unknown> = new Map, unknown>(); public get(service: ServiceDepencency) { if (!this.#instances.has(service)) { this.#instances.set(service, new service(this)); } return this.#instances.get(service) as T; } } export { Services };