JSX使用Typescript泛型来呈现组件,而不是使用开关

时间:2019-01-16 09:04:31

标签: typescript jsx

目前,我可以根据枚举类型来渲染一些JSX:

enum NavigationScreenType {
    SplashScreen,
    LoginSelectionScreen,
    LoginScreen,
}

    private getJSXFromScreenType(type: NavigationScreenType, props?: object): JSX.Element {
        switch (type) {
            case NavigationScreenType.LoginSelectionScreen:
                return (<LoginSelectionScreen {...props} />);
            case NavigationScreenType.LoginScreen:
                return (<LoginScreen {...props} />);
            default:
                return (<SplashScreen {...props}/>);
        }
    }

有没有一种方法可以使用泛型来实现?我打算修改该函数以接受类型,并在一行中返回一行内容:

    private getJSXFromScreenType<T extends BaseNavigationScreen>(type: T, props?: object): JSX.Element {
        return (<type {...props}/>);
    }

0 个答案:

没有答案