diff --git a/src/__tests__/global-container.test.ts b/src/__tests__/global-container.test.ts index 5685d03..b6d68f3 100644 --- a/src/__tests__/global-container.test.ts +++ b/src/__tests__/global-container.test.ts @@ -553,6 +553,13 @@ test("registers by value provider", () => { expect(globalContainer.isRegistered(registration.token)).toBeTruthy(); }); +test("value provider with 'undefined' value should work fine", () => { + globalContainer.register("Foo", { + useValue: undefined + }); + expect(globalContainer.resolve("Foo")).toBe(undefined); +}); + test("registers by token provider", () => { const registration = { token: "IBar", diff --git a/src/providers/value-provider.ts b/src/providers/value-provider.ts index 63fef06..c704b40 100644 --- a/src/providers/value-provider.ts +++ b/src/providers/value-provider.ts @@ -7,5 +7,5 @@ export default interface ValueProvider { export function isValueProvider( provider: Provider ): provider is ValueProvider { - return (provider as ValueProvider).useValue != undefined; + return Object.prototype.hasOwnProperty.call(provider, "useValue"); }