我经常遇到与流程相同的问题:我将某些内容注释为?type
并忘记接受null
,所以当我做这样的事情时:
function foo(data: string = '') {}
function bar(data: ?string) { foo(data); }
由于foo(null)
并未将data
解析为string
,而foo(undefined)
确实如此,因此流向我大喊大叫。那么有更简单的方法来写这个:
function bar(data: string|typeof undefined) {
或者我做了一些根本错误的事情?
答案 0 :(得分:1)
typeof undefined
为void
。
那么:
function bar(data: string | void | null) {
或
function bar(data?: string | null) {