codemix / babel-plugin-typecheck

Static and runtime type checking for JavaScript in the form of a Babel plugin.
MIT License
886 stars 44 forks source link

Optional properties do not work? #115

Closed gajus closed 8 years ago

gajus commented 8 years ago

Type declaration:

type RetryConfigurationType = {
    retries: ?number,
    factor: ?number,
    minTimeout: ?number,
    maxTimeout: ?number,
    retries: ?bool
};

I am calling a function with:

{
    reties: 1,
    factor: 0,
    minTimeout: 1
}

I am getting an error:

TypeError: Value of argument "retryConfiguration" violates contract.

Expected:
{ retries: ?number;
  factor: ?number;
  minTimeout: ?number;
  maxTimeout: ?number;
  retries: ?bool;
}

Got:
{ retries: number;
  factor: number;
  minTimeout: number;
}
gajus commented 8 years ago

I just noticed that I have mistyped the type declaration. It should have been:

type RetryConfigurationType = {
    retries: ?number,
    factor: ?number,
    minTimeout: ?number,
    maxTimeout: ?number,
    randomize: ?bool
};