• Overview
@angular/core

reflectComponentType

function
stable

Creates an object that allows to retrieve component metadata.

API

function reflectComponentType<C>(component: Type<C>): ComponentMirror<C> | null;

reflectComponentType

ComponentMirror<C> | null

Creates an object that allows to retrieve component metadata.

@paramcomponentType<C>

Component class reference.

@returnsComponentMirror<C> | null

Usage Notes

The example below demonstrates how to use the function and how the fields of the returned object map to the component metadata.

@Component({
  standalone: true,
  selector: 'foo-component',
  template: `
    <ng-content></ng-content>
    <ng-content select="content-selector-a"></ng-content>
  `,
})
class FooComponent {
  @Input('inputName') inputPropName: string;
  @Output('outputName') outputPropName = new EventEmitter<void>();
}

const mirror = reflectComponentType(FooComponent);
expect(mirror.type).toBe(FooComponent);
expect(mirror.selector).toBe('foo-component');
expect(mirror.isStandalone).toBe(true);
expect(mirror.inputs).toEqual([{propName: 'inputName', templateName: 'inputPropName'}]);
expect(mirror.outputs).toEqual([{propName: 'outputName', templateName: 'outputPropName'}]);
expect(mirror.ngContentSelectors).toEqual([
  '*',                 // first `<ng-content>` in a template, the selector defaults to `*`
  'content-selector-a' // second `<ng-content>` in a template
]);
Jump to details