flow type question mark before or after param?

Basically

bar: ?string

accepts a string, null or void:

foo("test");
foo(null);
foo()

While

bar?: string

Accepts only a string or void:

foo("test");
foo();

As passing null instead of a string is somewhat senseless, theres no real life difference between them.


?string (maybe type) means that bar property can be string aswell as null and void.

bar? means that this property is optional.

More info: https://flow.org/en/docs/types/primitives/