本文介绍: 在 TypeScript 中,有两个常用操作符 “!” 和 “?.”,用于处理对象属性访问空值nullundefined)的处理。虽然这两个操作符看起来相似,但在使用时有着不同行为应用场景本文将深入解析 TypeScript 中的 “!” 和 “?.” 操作符区别

概述

在 TypeScript 中,有两个常用操作符 “!” 和 “?.”,用于处理对象属性访问和空值(nullundefined)的处理。虽然这两个操作符看起来相似,但在使用时有着不同行为应用场景。本文将深入解析 TypeScript 中的 “!” 和 “?.” 操作符的区别。

“!” 非空断言操作

“!” 用于对象属性访问时,告诉 TypeScript 该属性一定存在,不会为 nullundefined。这样可以告诉 TypeScript 忽略可能的空值检查,将属性视为非空。例如

const obj = { foo: "bar" };

// 使用非空断言操作符,告诉 TypeScript 属性一定存在
const value = obj.foo!; // 这里使用了 "!" 断言 foo 属性一定存在
console.log(value); // 输出bar

需要注意的是,如果使用了 “!” 操作符,但实际上属性为 nullundefined,会导致运行错误。因此在使用 “!” 断言时要确保属性确实存在,避免空指针错误

“!” 操作符在以下情况下常常使用

“?.”可选链操作

“?.” 操作用于对象属性访问时,进行安全的空值检查,避免访问 nullundefined 时的错误例如

const obj = { foo: { bar: "baz" }};

// 使用可选链操作符,安全访问属性
const value = obj.foo?.bar; // 这里使用了 "?." 进行安全访问
console.log(value); // 输出:baz

// 当 foo 属性不存在时,不会抛出错误,而是返回 undefined
const value2 = obj.bar?.baz;
console.log(value2); // 输出undefined

“?.” 操作符在访问嵌套属性时也可以使用,它会一直进行安全的空值检查,直到找到最终的属性或遇到 nullundefined 为止。

“?.” 操作符在以下情况下常常使用:

总结

原文地址:https://blog.csdn.net/ShunxinLive/article/details/130220720

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_47718.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注