A wrong dependency is a compile error, not a 3 a.m. stack trace.
List one token per constructor parameter. TypeScript checks the list against the constructor, and createToken<T>() gives interfaces a typed token that resolves to T with no generic argument.
Read moreconst Logger = createToken<Logger>('Logger');
services.addSingleton(Logger, ConsoleLogger);services.addScoped(UserRepository, [Logger]); // checkedconst repo = await scope.getRequiredService(UserRepository); // UserRepository