bsr
bsr

Reputation: 58740

Flow type for optional field in an object

In the following code (Try Flow):

type Response = {
    err: ?string;
    data: Object;
}
function length(x): Response {
  return { data : {} };
}

length(10)

I made err optional, but still get an error:

Property err not found in object literal

Upvotes: 21

Views: 11654

Answers (1)

Andrey
Andrey

Reputation: 4050

This is the correct syntax for an optional property:

type Response = {
    err?: string;
    data: Object;
}

Demo

The syntax you tried to use (err: ?string) is a Maybe type, which means the err key should be in the object and can have type string, null, or void (undefined).

Upvotes: 41

Related Questions