in src/dependency-container.ts [472:493]
private construct<T>(
ctor: constructor<T> | DelayedConstructor<T>,
context: ResolutionContext
): T {
if (ctor instanceof DelayedConstructor) {
return ctor.createProxy((target: constructor<T>) =>
this.resolve(target, context)
);
}
const paramInfo = typeInfo.get(ctor);
if (!paramInfo || paramInfo.length === 0) {
if (ctor.length === 0) {
return new ctor();
} else {
throw new Error(`TypeInfo not known for "${ctor.name}"`);
}
}
const params = paramInfo.map(this.resolveParams(context, ctor));
return new ctor(...params);
}