Can someone explain the difference between:
function foo(bar: ?string) {
console.log(bar);
}
and:
function foo(bar?: stri
?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/
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.