Skip to content

TypeScript types don't match implementation #69

@paavohuhtala

Description

@paavohuhtala

Currently, the TypeScript type definitions do not match the documentation nor the implementation. Here are the problems I've encountered so far in one afternoon of integrating the library:

  • <ErrorBoundary> has a fallbackUI prop, which is a ReactNode (the result of rendering a component) in types, but is assumed to be a function (a functional component) in the implementation. The correct type would most likely be React.ComponentType<{}> or React.FC<{}>.
  • historyContext has multiple issues:
    • The documentation (and implementation) claims to support both History v4 and History v5, but the types are only compatible with V4.
    • filter and formatter functions receive location as a string, but it is in fact a Location object, not a string.
    • filter and formatter are documented as optional, but they are required arguments in types.
    • Furthermore, the types are not correct even for V4:
      • The function returns a callback which receives an object consisting of action and filter, but this seems like a copy-paste mistake and the correct signature is probably (location: Location, action: string).
      • You need to define your own Location type, unless you want to take a dependency on history.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions