web-dev-qa-db-ja.com

paramの前後にフロータイプの疑問符がありますか?

誰かが以下の違いを説明できますか?

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

そして:

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

いつ他を使用するか?

18
Vic

基本的に

bar: ?string

文字列、nullまたはvoidを受け入れます。

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

ながら

bar?: string

文字列またはvoidのみを受け入れます。

foo("test");
foo();

文字列の代わりにnullを渡すのは無意味なので、それらの間に実際の違いはありません。

25
Jonas Wilms

?string(おそらくタイプ)は、barプロパティがstringおよびnullおよびvoidと同様であることを意味します。

bar?は、このプロパティがオプションであることを意味します。

詳細: https://flow.org/en/docs/types/primitives/

12
kind user