Reactjs 有条件返回react路由器路由的TypeScript函数

Reactjs 有条件返回react路由器路由的TypeScript函数,reactjs,typescript,react-router,react-router-dom,Reactjs,Typescript,React Router,React Router Dom,我有一个TypeScript函数,当调用该函数时,根据提供的参数有条件地返回一个react router domroute。但是,当我声明(Route | null)的返回类型时,我得到以下错误: TS2740:类型“Element”缺少类型中的以下属性 “路由”:上下文、设置状态、强制更新、渲染和2 更多 我是否没有正确声明此函数的返回类型,如果是,应该是什么?我还尝试了(Route | null),但这似乎并没有解决问题。谢谢 import * as React from 'react';

我有一个TypeScript函数,当调用该函数时,根据提供的参数有条件地返回一个
react router dom
route。但是,当我声明
(Route | null)
的返回类型时,我得到以下错误:

TS2740:类型“Element”缺少类型中的以下属性 “路由”:上下文、设置状态、强制更新、渲染和2 更多

我是否没有正确声明此函数的返回类型,如果是,应该是什么?我还尝试了
(Route | null)
,但这似乎并没有解决问题。谢谢

import * as React from 'react';
import { Route } from 'react-router-dom';

const SampleComponent: React.FC = () => <h1>hello world</h1>;

export const getRoute = (returnRoute: boolean): (Route | null) => {
  if (returnRoute) {
    return (
      <Route
        component={SampleComponent}
        exact
        path="/samplePath"
      />
    );
  }
  return null;
};
import*as React from'React';
从'react router dom'导入{Route};
const SampleComponent:React.FC=()=>hello world;
export const getRoute=(returnRoute:boolean):(Route | null)=>{
if(返回路线){
返回(
);
}
返回null;
};

如果您查看
路线的签名

export class Route<T extends RouteProps = RouteProps> extends React.Component<T, any> { }

因此,为了回答您的问题,如果查看
路由的签名,可以将
(Route | null)
替换为
React.ReactNode

export class Route<T extends RouteProps = RouteProps> extends React.Component<T, any> { }
因此,要回答您的问题,您可以将
(Route | null)
替换为
React.ReactNode