diff --git a/packages/context/src/__tests__/unit/inject.unit.ts b/packages/context/src/__tests__/unit/inject.unit.ts index 59d9272fed3e..9fb1ae327451 100644 --- a/packages/context/src/__tests__/unit/inject.unit.ts +++ b/packages/context/src/__tests__/unit/inject.unit.ts @@ -29,6 +29,16 @@ describe('function argument injection', () => { expect(meta.map(m => m.bindingSelector)).to.deepEqual(['foo']); }); + it('allows decorator to be explicitly invoked for class ctor args', () => { + class TestClass { + constructor(foo: string) {} + } + inject('foo')(TestClass, undefined, 0); + + const meta = describeInjectedArguments(TestClass); + expect(meta.map(m => m.bindingSelector)).to.deepEqual(['foo']); + }); + it('can retrieve information about injected method arguments', () => { class TestClass { test(@inject('foo') foo: string) {} diff --git a/packages/context/src/inject.ts b/packages/context/src/inject.ts index d6d06a95d3b1..e6c6285196b2 100644 --- a/packages/context/src/inject.ts +++ b/packages/context/src/inject.ts @@ -124,7 +124,7 @@ export function inject( } return function markParameterOrPropertyAsInjected( target: Object, - member: string, + member: string | undefined, methodDescriptorOrParameterIndex?: | TypedPropertyDescriptor | number,