Skip to content

Export Flow types as part of the module #243

@Beanow

Description

@Beanow

This is a:

  • Bug Report
  • Feature Request
  • Question
  • Other

Which concerns:

  • flow-runtime
  • babel-plugin-flow-runtime
  • flow-runtime-validators
  • flow-runtime-mobx
  • flow-config-parser
  • The documentation website

What is the current behaviour?

Currently, the flow-runtime library does not export it's Flow types as part of the module.


What is the expected behaviour?

Incorrect usage of flow-runtime without babel should trigger Flow errors.

// @flow

import t, {type Type} from "flow-runtime";

opaque type PositiveNumber: number = number;

// Example refined type.
const PositiveNumberType: Type<PositiveNumber> = t.refinement(
  t.number(),
  (x: number) => {
    if (x < 0) return "must be positive";
  }
);

// Signature is accepts(input: any): boolean
// But we're passing more arguments and expecting wrong return type.
const _: string = PositiveNumberType.accepts(1, 2, 3, 4);

// Also should be caught by static Flow checks.
() => PositiveNumberType.methodDoesntExist();

Which package versions are you using?

flow-runtime: 0.17.0

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions