diff --git a/packages/core/src/reflection/reflection_capabilities.ts b/packages/core/src/reflection/reflection_capabilities.ts index 799d4a4ecd..baadf9a404 100644 --- a/packages/core/src/reflection/reflection_capabilities.ts +++ b/packages/core/src/reflection/reflection_capabilities.ts @@ -64,7 +64,7 @@ export class ReflectionCapabilities implements PlatformReflectionCapabilities { // migration, but this can be revisited. if (typeof paramTypes === 'undefined') { result[i] = []; - } else if (paramTypes[i] != Object) { + } else if (paramTypes[i] && paramTypes[i] != Object) { result[i] = [paramTypes[i]]; } else { result[i] = []; diff --git a/packages/core/test/reflection/reflector_spec.ts b/packages/core/test/reflection/reflector_spec.ts index 25cb3d0725..ff07f8b1f6 100644 --- a/packages/core/test/reflection/reflector_spec.ts +++ b/packages/core/test/reflection/reflector_spec.ts @@ -109,6 +109,16 @@ class TestObj { class ForwardDep {} expect(reflector.parameters(Forward)).toEqual([[ForwardDep]]); }); + + it('should not return undefined types for downleveled types', () => { + class Dep {} + + class TestService { + constructor() {} + static ctorParameters = () => [{type: undefined, decorators: []}, {type: Dep}]; + } + expect(reflector.parameters(TestService)).toEqual([[], [Dep]]); + }); }); describe('propMetadata', () => {