param之前或之后的流式问号?

时间:2017-11-15 18:29:33

标签: javascript ecmascript-6 flowtype

有人可以解释之间的区别:

function foo(bar: ?string) {
  console.log(bar);
}

function foo(bar?: string) {
  console.log(bar);
}

何时使用其中一个?

3 个答案:

答案 0 :(得分:23)

基本上

bar: ?string

接受字符串,null或void:

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

虽然

bar?: string

只接受字符串或空格:

foo("test");
foo();

由于传递null而不是字符串有点无意义,因此它们之间没有真正的生命差异。

答案 1 :(得分:11)

?string(可能是类型)表示bar属性可以是string以及nullvoid

bar?表示此属性是可选的。

更多信息:https://flow.org/en/docs/types/primitives/

答案 2 :(得分:-1)

op,请更改接受的答案。当前接受的答案不正确。