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>;
...
