Angular中的?.和!.到底有什么区别?
创始人
2024-10-31 02:00:20
0次

在 Angular 中,?. 和 !. 都是安全导航操作符,用于处理可能为 null 或未定义的属性或方法。

?. 操作符是安全的管道,用于防止在引用 null 或未定义值的情况下抛出异常。它在尝试访问属性或调用方法时检查对象是否为 null 或 undefined,如果是,则返回 undefined,而不是抛出异常。

! 操作符是非空断言操作符,表示运算符右边的表达式不会为 null 或 undefined,否则会抛出异常。

下面是一个示例,展示了如何使用这两个操作符:

interface Foo {
  bar?: {
    baz: string;
  };
}

const foo: Foo = { bar: { baz: 'hello' } };

// 使用 ?. 操作符
const result1 = foo.bar?.baz;  // 'hello'

// 使用 ! 操作符
const result2 = foo.bar!.baz;  // 'hello'

在上面的示例中,使用 ?. 操作符和 ! 操作符从对象 foo 中获取属性值 baz。当 foo.bar 为 null 或 undefined 时,?. 操作符返回 undefined,! 操作符会抛出异常。由于 foo.bar 是有定义的,所以两个操作符都返回 'hello'。

相关内容

热门资讯

分享给玩家开挂!天时棋牌开挂A... 分享给玩家开挂!天时棋牌开挂AI脚本,天时棋牌多功能确实是有开挂脚本1、每一步都需要思考,不同水平的...
新手必备透视器!即赢互动透视器... 新手必备透视器!即赢互动透视器AI插件,即赢互动多功能竟然是有透视器插件进入游戏-大厅左侧-新手福利...
分享实测辅助器!红豆大厅辅助器... 分享实测辅助器!红豆大厅辅助器AI脚本,红豆大厅多功能好像真的有辅助器脚本1、金币登录送、破产送、升...
终于懂了透视器!天时棋牌透视器... 终于懂了透视器!天时棋牌透视器AI脚本,天时棋牌多功能竟然存在有透视器脚本1、进入到天时棋牌是否有挂...
程序员教你开挂!葫芦岛爱玩麻将... 程序员教你开挂!葫芦岛爱玩麻将开挂AI攻略,葫芦岛爱玩麻将多功能好像有开挂攻略1、葫芦岛爱玩麻将公共...
热点推荐外挂!混沌休闲外挂AI... 热点推荐外挂!混沌休闲外挂AI攻略,混沌休闲多功能切实是真的有外挂攻略混沌休闲破解侠是真的助透视。每...
必备攻略辅助!创乐缘辅助AI技... 必备攻略辅助!创乐缘辅助AI技巧,创乐缘多功能本来真的有辅助技巧1、创乐缘公共底牌简单,创乐缘透视插...
今日百科开挂!八戒贵宾室开挂A... 今日百科开挂!八戒贵宾室开挂AI软件,八戒贵宾室多功能总是真的是有开挂软件1、不需要AI权限,帮助你...
热门推荐辅助!天天卡五星辅助A... 热门推荐辅助!天天卡五星辅助AI攻略,天天卡五星多功能本来是真的有辅助攻略1、许多玩家不知道天天卡五...
一分钟了解作弊器!MG棋牌作弊... 一分钟了解作弊器!MG棋牌作弊器AI教程,MG棋牌多功能一直真的是有作弊器教程MG棋牌破解侠是真的助...