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

猿创征文|【Typescript入门】常用数据类型(3)

多一些不为什么的坚持🤳

贤蛋 🥚大眼萌 ,一名很普通但不想普通的程序媛🙊

📝本文章收录于专栏:Typescript学习

常用数据类型(3)

    • 🧢 类型断言 as
      • 1. 非空类型断言 !
      • 2. 可选链的使用
    • 🌽 ??和!!的作用
    • 🥕 字面量类型
    • 🍤 类型缩小
      • 1. typeof
      • 2. 平等缩小(比如===、!==)
      • 3. instanceof
      • 4. in

🧢 类型断言 as

​ 有时候TypeScript无法获取具体的类型信息,这个我们需要使用类型断言。可以把一个相对普遍的类型转换成一个相对具体的类型。

场景:比如我们通过 document.getElementById,TypeScript只知道该函数会返回 HTMLElement ,但并不知道它具体的类型。

image-20220831182623321

1. 非空类型断言 !

​ 非空断言使用的是 ! ,表示可以确定某个标识符是有值的,跳过ts在编译阶段对它的检测。

image-20220831203408226

2. 可选链的使用

可选链事实上并不是TypeScript独有的特性,它是ES11(ES2020)中增加的特性。

​ 可选链使用可选链操作符 ?.

作用是当对象的属性不存在时,会短路,直接返回undefined,如果存在,那么才会继续执行。

🌽 ??和!!的作用

这两个操作符不是TS特有的,有时候在JavaScript中需要的时候也可以使用

!!操作符

将一个其他类型转换成boolean类型,类似于Boolean(变量)的方式;

image-20220831205425503

??操作符

空值合并操作符(??)是一个逻辑操作符,当操作符的左侧是 null 或者 undefined 时,返回其右侧操作数, 否则返回左侧操作数

image-20220831205536001

🥕 字面量类型

image-20220831205755314

默认情况下的字面量类型是没什么意义的。

image-20220831212416194

🍤 类型缩小

​ 给定的执行路径中,我们可以缩小比声明时更小的类型,这个过程称之为缩小。

  • typeof
  • 平等缩小(比如===、!==)
  • instanceof
  • in

1. typeof

​ 检查返回的值typeof是一种类型保护:因为 TypeScript 对如何typeof操作不同的值进行编码。

image-20220831213137558

2. 平等缩小(比如===、!==)

​ Switch或者相等的一些运算符来表达相等性(比如===, !==, ==, and != )

image-20220831213513088

3. instanceof

​ JavaScript 有一个运算符来检查一个值是否是另一个值的“实例”

image-20220831213616156

4. in

​ in 运算符,用于确定对象是否具有带名称的属性。如果指定的属性在指定的对象或其原型链中,则in 运算符返回true。

image-20220831213950868
在这里插入图片描述

相关文章:

  • 国产分布式数据库在证券行业的应用及实践
  • 折腾一晚上的事情,明白了一个道理
  • < Linux > 进程概念(1)
  • Nacos介绍以及使用
  • 数字孪生在工业制造中的应用领域及技术体系构建
  • 9.4-学习ing
  • Docker 学习笔记总结(二)
  • 标准地图获取及使用
  • Kubernetes控制平面组件:Controller-Manager控制器管理
  • 数据备份必备知识与策略设计方法
  • Checkerboard Artifacts(棋盘伪影)的发生以及解决方案:
  • 【算法题解】拓扑序计数+树形DP
  • 优雅编码之——传统项目中,使用openfeign替换掉项目中的httpclient
  • 【ENVI精讲】处理专题五:基于像元二分模型的植被覆盖度反演
  • Docker 官方镜像Tomcat 无法访问 解决方案
  • Google 是如何开发 Web 框架的
  • 【159天】尚学堂高琪Java300集视频精华笔记(128)
  • Flex布局到底解决了什么问题
  • Go 语言编译器的 //go: 详解
  • open-falcon 开发笔记(一):从零开始搭建虚拟服务器和监测环境
  • uni-app项目数字滚动
  • 阿里云应用高可用服务公测发布
  • 从PHP迁移至Golang - 基础篇
  • 从地狱到天堂,Node 回调向 async/await 转变
  • 分类模型——Logistics Regression
  • 聊聊spring cloud的LoadBalancerAutoConfiguration
  • 前端之Sass/Scss实战笔记
  • 深入 Nginx 之配置篇
  • 适配mpvue平台的的微信小程序日历组件mpvue-calendar
  • 学习Vue.js的五个小例子
  • 原生Ajax
  • Spring Batch JSON 支持
  • 积累各种好的链接
  • ​html.parser --- 简单的 HTML 和 XHTML 解析器​
  • ​力扣解法汇总1802. 有界数组中指定下标处的最大值
  • # Panda3d 碰撞检测系统介绍
  • #DBA杂记1
  • #gStore-weekly | gStore最新版本1.0之三角形计数函数的使用
  • #每天一道面试题# 什么是MySQL的回表查询
  • #使用清华镜像源 安装/更新 指定版本tensorflow
  • (0)Nginx 功能特性
  • (1)常见O(n^2)排序算法解析
  • (11)工业界推荐系统-小红书推荐场景及内部实践【粗排三塔模型】
  • (poj1.2.1)1970(筛选法模拟)
  • (补)B+树一些思想
  • (二) Windows 下 Sublime Text 3 安装离线插件 Anaconda
  • (附源码)ssm基于web技术的医务志愿者管理系统 毕业设计 100910
  • (教学思路 C#之类三)方法参数类型(ref、out、parmas)
  • (算法二)滑动窗口
  • (转)jdk与jre的区别
  • (转)重识new
  • .bat批处理(九):替换带有等号=的字符串的子串
  • .net core webapi Startup 注入ConfigurePrimaryHttpMessageHandler
  • .NET Core 将实体类转换为 SQL(ORM 映射)
  • .NET Core6.0 MVC+layui+SqlSugar 简单增删改查