с typescript.
допустим у меня есть реакт-компонент, который не использует пропсы (всегде рендерит одно и то же):
let DashboardPage = () => {
return (
<h1>Hello, this is dashboard</h1>
)
}
теперь я пытаюсь его использовать с @reach/router:
<Router>
<DashboardPage path='/' />
</Router>
т.е. я передаю ему проп path, но тайпскрипт падает с ошибкой:
ERROR in [at-loader] ./src/app.tsx:18:10
TS2322: Type '{ path: string; }' is not assignable to type 'IntrinsicAttributes'.
Property 'path' does not exist on type 'IntrinsicAttributes'.
т.е. он хочет, чтобы я описал пропсы, которые свойственны компоненту, который используется в Router. я делаю следующее:
import { RouteComponentProps } from '@reach/router'
let DashboardPage = (props: RouteComponentProps) => {
return (
<h1>Hello, this is dashboard</h1>
)
}
но теперь оно ругается:
ERROR in [at-loader] ./src/app.tsx:8:17
TS6133: 'props' is declared but its value is never read.
как мне правильно задать тип этим пропсам, типа path, реально их не используя? всё, что я могу придумать, это void:
import { RouteComponentProps } from '@reach/router'
let DashboardPage = (props: RouteComponentProps) => {
void props
return (
<h1>Hello, this is dashboard</h1>
)
}
Странно, у меня не падает
Попробуй указать тип переменной let DashboardPage: React.SFC<RouteComponentProps> = () => { return ( <h1>Hello, this is dashboard</h1> ) }
Обсуждают сегодня