有人可以解释之间的区别:
function foo(bar: ?string) {
console.log(bar);
}
和
function foo(bar?: string) {
console.log(bar);
}
何时使用其中一个?
答案 0 :(得分:23)
基本上
bar: ?string
接受字符串,null或void:
foo("test");
foo(null);
foo()
虽然
bar?: string
只接受字符串或空格:
foo("test");
foo();
由于传递null而不是字符串有点无意义,因此它们之间没有真正的生命差异。
答案 1 :(得分:11)
?string
(可能是类型)表示bar
属性可以是string
以及null
和void
。
bar?
表示此属性是可选的。
答案 2 :(得分:-1)
op,请更改接受的答案。当前接受的答案不正确。