誰かが以下の違いを説明できますか?
function foo(bar: ?string) {
console.log(bar);
}
そして:
function foo(bar?: string) {
console.log(bar);
}
いつ他を使用するか?
基本的に
bar: ?string
文字列、nullまたはvoidを受け入れます。
foo("test");
foo(null);
foo()
ながら
bar?: string
文字列またはvoidのみを受け入れます。
foo("test");
foo();
文字列の代わりにnullを渡すのは無意味なので、それらの間に実際の違いはありません。
?string
(おそらくタイプ)は、bar
プロパティがstring
およびnull
およびvoid
と同様であることを意味します。
bar?
は、このプロパティがオプションであることを意味します。