有什么区别
variable!.child_variable
和
variable?.child_variable
用例示例
const data = obj!.data;
对
const data = obj?.data;
类似应用于该对象的功能
obj!.doSomething();
对
obj?.doSomething();
对我来说也是一样。但还是有什么不同吗?
Non-null assertion
(!) 告诉 TypeScript 假设变量不为 null 或未定义,即使类型检查器认为可能是这样。它基本上覆盖了 TypeScript 严格的 null 检查。Optional chaining
(?.) 安全地访问属性或方法,如果对象为 null 或未定义,则返回 undefined。