Búsqueda de sitios web

typescript - ¿Cuál es el tipo de un componente de Angular 13?


Estoy creando un componente que recibe otro componente a través de una entrada que puedes ver en esta demostración de stackblitz. Si miras el @Input() del ParentComponent verás que está definido como

@Input() ComponentToEmbed : eComponentType<Component>;

Me encontré con esta pregunta de StackOverflow de hace 4 años, que sugería usar ComponentType<T>, lo cual fue lo que me hizo intentarlo. Sin embargo, en mi aplicación Angular 13, no existe tal cosa como ComponentType cuando empiezo a escribir. Busqué en las páginas de documentación y no vi nada que mencionara ComponentType<T>. ¿Qué debería hacer para escribir correctamente el @Input()?

Respuesta #1

ComponentType<T> es parte de Angular Material CDK

/** Interface that can be used to generically type a class. */
export interface ComponentType<T> {
    new (...args: any[]): T;
}

Respuesta #2

Basado en tu ejemplo de stackblitz, parece que Type<Component> debería funcionar.

import { Type } from '@angular/core';
...

@Input() ComponentToEmbed : Type <Component>;
...