rest隐式地具有类型any,因为它没有类型注释,并且在其自己的初始化程序

时间:2018-03-12 12:17:35

标签: reactjs typescript react-router

所以我正在尝试使用react router 4和Typescript创建一个私有路由。这是我的代码:

type PrivateRouteProps<T> = T & { component: any, authRequired: boolean };

function PrivateRoute({ component: Component, authRequired, ...rest }: PrivateRouteProps<typeof rest>) {
 return (
    <Route
        {...rest}
        render={props => authRequired === true
            ? <Layout><Component {...props} /></Layout>
            : <Redirect to={{ pathname: '/home', state: { from: props.location } }} />}
    />
 );
}

我在PrivateRoute函数中遇到了... rest arg的问题,它给出了错误:

  

'rest'隐式具有类型'any',因为它没有类型注释,并且在其自己的初始化程序中直接或间接引用。

我看过对象解构的打字稿文档,但我似乎无法找到解决方案

1 个答案:

答案 0 :(得分:0)

我认为你不能typeof rest,因为它不知道rest是什么类型。