当前位置: 首页 > news >正文

非空断言,

先看下TypeScript基础之非空断言操作符、可选链运算符、空值合并运算符-CSDN博客

我没有复现出来,但是我知道了它的作用

用  let str: string = arg!;

代替

let str: string;

if (arg) { str = arg; }

非空断言(!)和不使用的区别在于对于可能为 nullundefined 的值的处理方式。非空断言告诉 TypeScript 编译器在某个特定上下文中,你确定一个值不会为 nullundefined

下面是一个示例代码,演示了使用非空断言和不使用的区别:

// 使用非空断言
function withNonNullAssertion(input: string | null): void {let length: number = input!.length; // 使用非空断言console.log(length);
}// 不使用非空断言
function withoutNonNullAssertion(input: string | null): void {if (input !== null) {let length: number = input.length; // 不使用非空断言,通过条件检查console.log(length);} else {console.log('Input is null');}
}// 示例调用
let myString: string | null = 'Hello, TypeScript!';
withNonNullAssertion(myString); // 使用非空断言
withoutNonNullAssertion(myString); // 不使用非空断言

withNonNullAssertion 函数中,我们使用非空断言直接获取 input 的长度,因为我们在这个上下文中确切地知道 input 不会为 null。这样做可以简化代码,但要确保你在使用非空断言时了解上下文,并且确定该值确实不会为 nullundefined

withoutNonNullAssertion 函数中,我们通过条件检查确保 input 不为 null,然后再使用它的属性。这是一种更安全的方式,适用于在某些情况下你不能确定值是否为 nullundefined 的情况。

http://www.lryc.cn/news/249705.html

相关文章:

  • Spark---创建DataFrame的方式
  • 瑜伽学习零基础入门,各种瑜伽教学方法全集
  • pycharm编译报错处理
  • “华为杯”研究生数学建模竞赛2019年-【华为杯】E题:基于多变量的全球气候与极端天气模型的构建与应用(附python代码实现)
  • 冒泡排序(适合编程新手的体质)
  • pdfjs,pdf懒加载
  • K8s 多租户方案的挑战与价值
  • 单链表相关经典算法OJ题:移除链表元素
  • 【JUC】十九、volatile与内存屏障
  • 下载MySQL JDBC驱动的方法
  • C/C++ 实现FTP文件上传下载
  • 第十三章 python之爬虫
  • scrum 敏捷开发
  • 亚信科技AntDB数据库完成中国信通院数据库迁移工具专项测试
  • 深度学习(一):Pytorch之YOLOv8目标检测
  • EasyExcel如何读取全部Sheet页数据方法
  • GDPU 数据结构 天码行空12
  • 什么是 Proxy?
  • Vue系列:Vue Element UI中,使用按钮实现视频的播放、停止、停止后继续播放、播放完成后重新播放功能
  • .Net 8 Blazor下 Auto交互渲染模式试用
  • AndroidStudio - 新版本 Logcat 使用详解
  • Webpack ECMAScript 模块
  • knife4j集合化postman
  • MongoDB的原子性和多文档事务处理
  • 代理模式 1、静态代理 2、动态代理 jdk自带动态代理 3、Cglib代理
  • ELK+filebeat+kafka
  • LLVM学习笔记(63)
  • 【python+requests】接口自动化测试
  • plt创建指定色系
  • Java多线程-第20章