可选符号(?)描述的类型是any | undefined
或any | null
还是两者之一?在下面的代码中,似乎两者都是,但我无法找到是否是正式的情况:
type MyType = {
prop1?: string;
prop2: string | null;
}
const something: MyType = { prop2: null };
something.prop1?.toString();
something.prop2?.toString();
可选真的是指any | null | undefined
吗?我所说的any
一般指任何类型。
1条答案
按热度按时间eivgtgni1#
?
在typescript中有多种含义(在javascript中也有)。在typescript类型中,?
表示属性可能未定义。null
在此方面不起作用。下面一行是类型中?
的示例:在javascript代码中(因此typescript代码继承了这个语法),
?.
是optional chaining operator,类似于通过.
访问一个属性,除了如果值为null或未定义,它会缩短计算过程,注意它从来不是一个单独的?
,它总是与.
结合在一起,并且总是在代码中而不是在类型中。下面是
?.
的代码示例: