从类型名称创建打字稿类型

时间:2018-03-11 15:38:50

标签: javascript angular typescript

我尝试在格式名称传递给格式子组件的角度中创建格式功能。此格式组件通过

创建
let componentFactory = componentFactoryResolver.resolveComponentFactory(typeOfFormatComponent);

因此,为了使其可配置,我需要将typeOfFormatComponent作为字符串传递 - 比如说' AddressFormatComponent'。

如何打开字符串' AddressFormatComponent'进入resolveComponentFactory调用的类型AddressFormatComponent?

1 个答案:

答案 0 :(得分:0)

您可以为所有FormatComponents声明一个接口:

interface FormatComponents {
    AddressFormatComponent: FormatComponent;
    ...
}
resolveComponentFactory(component: keyof FormatComponents) {
    let formatComponent = FormatComponents[component]; // This will work and be typed correctly.
}

这允许您通过强制执行stings匹配来对类型进行编译时检查。