Javascript 参数之前或之后的流类型问号?

Javascript 参数之前或之后的流类型问号?,javascript,ecmascript-6,flowtype,Javascript,Ecmascript 6,Flowtype,有人能解释一下: function foo(bar: ?string) { console.log(bar); } 以及: 什么时候使用一个字符串而不是另一个??string(可能是type)意味着条属性可以是字符串,也可以是空和空 bar?表示此属性是可选的 更多信息:基本上 bar: ?string 接受空或空字符串: foo("test"); foo(null); foo() 当 仅接受字符串或void: foo("test"); foo(); 由于传递null而不是字符串有点

有人能解释一下:

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

什么时候使用一个字符串而不是另一个?

?string
(可能是type)意味着
属性可以是
字符串
,也可以是

bar?
表示此属性是可选的

更多信息:

基本上

bar: ?string
接受空或空字符串:

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

仅接受字符串或void:

foo("test");
foo();

由于传递null而不是字符串有点毫无意义,它们之间没有实际的区别。

我在某个地方看到了
bar:?string
你什么时候会使用它?或者这没有意义吗?@tieme no这没有意义(至少对我来说不是):)检查。在一个对象文本中<代码>类型样式={fontName?:?string;}这里解释得很清楚:@BradPeabody根据文档
{prop?:foo}
是“可选属性语法”,我猜这是
可能
语法的特定用法
bar?: string
foo("test");
foo();