Comment est-ce que je fais typeof BaseListComponent
ci-dessous assignable?Définir typeof classe abstraite dans le typecript
Le code ci-dessous jette l'erreur suivante:
Type '
({ title: string; component: typeof QuestionsListComponent; } | { title: string; component: ...'
is not assignable to type'{ title: string; component: typeof BaseListComponent; }[]'
.
Extrait:
abstract class BaseListComponent {
protected title
}
class WeatherListComponent extends BaseListComponent {}
class QuestionsListComponent extends BaseListComponent {}
let containerItems: Array<{title: string, component: typeof BaseListComponent}>;
containerItems = [
{title:'TypeScript', component: QuestionsListComponent},
{title:'Angular2', component: QuestionsListComponent},
{title:'Weather', component: WeatherListComponent}
]
P.S ceci est un extrait d'une application simplifiée angulaire et donc il est logique derrière cette folie.
'BaseListContainerComponent' n'est pas la même chose que' BaseListComponent' dans votre exemple. Votre exemple fonctionne bien pour moi dans le [TypeScript Playground] (https://www.typescriptlang.org/play/). – Raven
Désolé, j'ai simplifié les noms mais j'ai oublié de le faire également dans le message d'erreur. C'est vraiment étrange que cela ne fonctionne pas dans un environnement angulaire mais dans le terrain de jeu ... – Tom
Dans votre message d'erreur, vous essayez d'assigner un type 'OU' ('{} | {}') à un array ('{...} []') – Raven