x! 将从 x 值域中排除 null 和 undefined.

看个例子:

myFunc = (maybeString: string | undefined | null) => {const onlyString: string = maybeString; // Errorconst ignoreUndefinedAndNull: string = maybeString!; // Ok}myFunc2 = (onlyString: string) => {const a: string = onlyString;}constructor() {this.myFunc('jerry');this.myFunc(undefined);this.myFunc2(undefined);this.myFunc2(null);}

没有编译错误,也能正常运行:

我的Angular版本:

测试出的结果和这篇文章细数 TS 中那些奇怪的符号里提到的不一致:

更多Jerry的原创文章,尽在:“汪子熙”:

TypeScript的非空断言操作符(感叹号)相关推荐

  1. TypeScript Non-null Assertion Operator 非空断言操作符 - 感叹号

    TypeScript 也有一种特殊的语法,可以在不进行任何显式检查的情况下从类型中删除 null 和 undefined. 写作 ! 在任何表达式实际上是一个类型断言之后,该值不为空或未定义: fun ...

  2. Kotlin如何避免“!!”(非空断言)

    当我们把Java自动转成Kotlin的时候,代码里会出现很多非空断言!!.或者某些场景下因为IDE提示或编译错误,也让我们自己加上了一些!!. 但使用!!的后果是有可能抛出IllegalArgumen ...

  3. Kotlin——初级篇(六):空类型、空安全、非空断言、类型转换等特性总结

    在我们熟知的Java中,定义一个变量可以默认不赋值,因为Java的系统会给我们默认赋一个默认值,并且Java可定义一个赋值为null的变量,这样在使用这个变量的时候都会去显示判断该变量是否为null. ...

  4. kolin学习笔记:非空类型与可空类型

    记得在我一开始接触kotlin时,听到的最多的就是kotlin的类型安全,各种巴拉巴拉?,关键就不断的夸安全,其他的却是什么也没有解释,差点还没入门,就直接放弃.虽然确实这是kotlin的特性之一,但 ...

  5. java 多态判断非空_收藏Java 面试题全梳理

    脚本之家 你与百万开发者在一起 来源 | Java建设者(ID:javajianshe) 作者 |cxuan 如若转载请联系原公众号 Java 基础篇 Java 有哪些特点 并发性的:你可以在其中执行 ...

  6. Java集合判空/非空

    1. 乱象 代码中各种同胞写的各种集合判空,很多,很杂乱.大多数是不规范的,而且可能会造成NPE,特别是业务层调DAO层查询列表时,势必会有空值返回,这个时候一个简单的 list.size()> ...

  7. ASP.NET中 RequiredFieldValidator(非空验证)的使用

    ylbtech-ASP.NET-Control-Validator: RequiredFieldValidator(非空验证)的使用 ASP.NET中 RequiredFieldValidator(非 ...

  8. oracle判断非空并拼接,oracle sql 判断字段非空,数据不重复,插入多跳数据

     oracle sql 判断字段非空,数据不重复 select distinct(mobile) from wx_user_mobile where active_time is not null ...

  9. 还在用if(obj!=null)做非空判断?带你快速上手Optional实战性理解!

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 1.前言 相信不少小伙伴已经被java的NPE(Null ...

最新文章

  1. 探访日本滨松光子:“光”如何加速汽车行业进入智能汽车时代
  2. python代码转换为pytorch_python、PyTorch图像读取与numpy转换
  3. Oracle中对现有表增加列
  4. 【深度学习】引用次数在15000次以上的都是什么神仙论文?
  5. 用SQL语言建表,课1
  6. Java面试10大知识点总结宝典助你通关!已拿意向书!
  7. C++之指针探究(十七):结构体内嵌函数指针实现分层
  8. android之AlarmManager 全局定时器
  9. 灰常好的开源项目[c/c++]
  10. 小程序中上传图片并进行压缩(二)
  11. winscp连接Linux步骤
  12. sap查看后台作业进度_SAP资产折旧运行 AFAB
  13. 2022最新教程,半小时速通Git和Github的基本操作。
  14. 开源项目推荐:主流RPC开源框架及知识科普
  15. 奶茶自由让人上头,95后为何钟爱这一杯甜蜜疗愈?
  16. Java生成两个圆判断是否重叠,用java随机画出两个圆,判断它们是不是相交
  17. 数据结构与算法—前导
  18. Vulkan【1】介绍
  19. 【Centos 7】---vim环境配色(colorscheme)配置
  20. 面向产业互联网eSIM终端的激活方案研究

热门文章

  1. 只使用了符号的Ruby程序
  2. JVM调优之jstack找出最耗cpu的线程并定位代码
  3. AS(Android studio)常见问题
  4. Django从理论到实战(part49)--ModelForm
  5. 如何查看 ToggleStatusComponent 是否是 SAP Spartacus public API 一部分
  6. Angular 项目里 angular.json 文件内容的学习笔记
  7. 2021年1月19日工作日志 - Cypress regression tests build error
  8. Angular rxjs源代码分析:range(0, 10)的实现
  9. 如何处理使用ngrx时遇到的错误消息: NullInjectorError R3InjectorError(AppModule)[StoreFeatureModule]
  10. Angular ngcc和ivy