JSX использует дженерики Typescript для рендеринга компонентов вместо использования переключателя - PullRequest
0 голосов
/ 16 января 2019

В настоящее время у меня есть это для отображения некоторых 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}/>);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...