react-router.d.ts 1.0 KB

1234567891011121314151617181920212223242526272829303132333435
  1. import {ComponentClass, ComponentType, StatelessComponent} from 'react';
  2. import {PlainRoute} from 'react-router/lib/Route';
  3. import {InjectedRouter, Params} from 'react-router/lib/Router';
  4. import {WithRouterProps} from 'react-router/lib/withRouter';
  5. import {Location} from 'history';
  6. declare module 'react-router' {
  7. interface InjectedRouter<P = Params, Q = any> {
  8. location: Location<Q>;
  9. params: P;
  10. routes: PlainRoute[];
  11. }
  12. interface WithRouterProps<P = Params, Q = any> {
  13. location: Location<Q>;
  14. params: P;
  15. router: InjectedRouter<P, Q>;
  16. routes: PlainRoute[];
  17. }
  18. type ComponentConstructor<P> =
  19. | ComponentClass<P>
  20. | StatelessComponent<P>
  21. | ComponentType<P>;
  22. declare function withRouter<P extends WithRouterProps>(
  23. component: ComponentConstructor<P>,
  24. options?: Options
  25. ): ComponentClass<Omit<P, keyof WithRouterProps>>;
  26. declare function withRouter<P extends WithRouterProps, S>(
  27. component: ComponentConstructor<P> & S,
  28. options?: Options
  29. ): ComponentClass<Omit<P, keyof WithRouterProps>> & S;
  30. }