Знак вопроса типа потока до или после параметра? Может кто-нибудь объяснить разницу между: function foo(bar: ?string) { console.log(bar); } и function foo(bar?: string) { console.log(bar); } Когда использовать один над другим? Ответ 1 В принципе bar: ?string принимает строку, null или void: foo("test"); foo(null); foo() В то время как bar?: string Принимает только строку или пустоту: foo("test"); foo(); Поскольку передача null вместо строки несколько бессмысленна, между ними нет реальной разницы в жизни. Ответ 2 ?string (может быть, type) означает, что свойство bar может быть string как null и void. bar? означает, что это свойство не является обязательным. Дополнительная информация: https://flow.org/en/docs/types/primitives/ Ответ 3 оп, пожалуйста, измените принятый ответ. Текущий принятый ответ не является правильным.
Ответ 1 В принципе bar: ?string принимает строку, null или void: foo("test"); foo(null); foo() В то время как bar?: string Принимает только строку или пустоту: foo("test"); foo(); Поскольку передача null вместо строки несколько бессмысленна, между ними нет реальной разницы в жизни.
Ответ 2 ?string (может быть, type) означает, что свойство bar может быть string как null и void. bar? означает, что это свойство не является обязательным. Дополнительная информация: https://flow.org/en/docs/types/primitives/