【TypeScript】never 类型

news2024/11/19 18:42:22

在 TypeScript 中,never 是一种特殊的类型,表示永远不会发生的值或类型。它通常用于表示一些绝对不可能出现的情况,例如永远不会返回的函数类型或在某些条件下绝对不会发生的值。
在这里插入图片描述
在这里插入图片描述

以下是一些关于 never 类型的情况:

  1. 函数返回值为 never
// 并不是没有返回值,而是抛出错误,因此此时用 never 比 void 更合适
function throwError(): never {
  throw new Error('error')
}
throwError()

// 死循环也可以用never
function xx():never {
  while(true) {

  }
}

这里,throwError 函数永远不会正常返回,它总是会抛出一个错误,因此其返回类型是 never

  1. 联合类型的 never
type InvalidType = string | never;

let invalidValue: InvalidType;
invalidValue = "hello"; // 正常赋值
// invalidValue = throwError("Something went wrong"); // 报错:Type 'never' is not assignable to type 'string'.

由于 never 表示不可能的情况,因此在联合类型中,如果其中一个分支的类型是 never,那么该联合类型实际上将被缩减为其他分支的类型。

  1. 条件类型中的 never
type MyType<T> = T extends string ? string : never;

let str: MyType<number>; // 类型为 never

在条件类型中,如果条件判断为 false,则分配类型为 never

  1. 兜底判断
type a = '唱' | '跳' | 'rap' | '篮球'
function kun(value:a) {
  switch (value) {
    case '唱':
      break
    case '跳':
      break
    case 'rap':
      break
    // case '篮球':
    //   break
    default:
      // 兜底逻辑
      const error :never = value // 此时报错
      break
  }
}
kun('篮球')

在这里插入图片描述
用于在工作中查询类型 a 中,是否都存在 switch 中。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/927802.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

大红喜庆版UI猜灯谜小程序源码/猜字谜微信小程序源码

今天给大家带来一款UI比较喜庆的猜灯谜小程序&#xff0c;大家看演示图的时候当然也是可以看得到那界面是多么的喜庆&#xff0c;而且新的一年也很快就来了,所以种种的界面可能都比较往喜庆方面去变吧。 这款小程序搭建是免服务器和域名的&#xff0c;只需要使用微信开发者工具…

243:vue+Openlayers 更改鼠标滚轮缩放地图大小,每次缩放小一点

第243个 点击查看专栏目录 本示例的目的是介绍如何在vue+openlayers项目中设置鼠标滚轮缩放地图大小,每次滑动一格滚轮,设定的值非默认值1。具体的设置方法,参考源代码。 直接复制下面的 vue+openlayers源代码,操作2分钟即可运行实现效果 文章目录 示例效果配置方式示例源…

Java快速入门体验

Java快速入门体验 一、环境信息1.1 硬件信息1.2 软件信息 二、Maven安装2.1 Maven介绍2.2 Maven安装包下载2.3 Maven安装2.4 Maven初始化 三、Java安装3.1 JDK下载3.2 JDK安装3.3 JDK初始化 四、开发环境搭建4.1 安装开发工具4.2 关联Maven环境4.2.1 新建JAVA项目4.2.2 Maven与…

5G网关如何提升智慧乡村农业生产效率

得益于我国持续推进5G建设&#xff0c;截至今年5月&#xff0c;我国5G基站总数已达284.4万个&#xff0c;覆盖全国所有地级市、县城城区和9成以上的乡镇镇区&#xff0c;实现“镇镇通5G”&#xff0c;全面覆盖了从城市到农村的延伸。 依托5G网络的技术优势&#xff0c;智慧乡村…

有没有好用的微信管理软件?解决企业营销管理痛点

企业营销管理痛点&#xff1a; 1、如何提高员工跟进客户的能力和效率&#xff1f; 2、怎么杜绝飞单私单工作怠慢等问题&#xff1f; 3、微信好友太多无法实现精准营销&#xff1f; 4、如何第一时间知道员工的违规行为&#xff1f; 多微信聚合聊天 多个微信号聚合在一个界面…

Linux 打开U盘硬盘等报错 file type exfat not configured in kernel

目录 原因&#xff1a; 查看系统文件系统和当前系统版本 回归正题&#xff0c;如何解决报错 在centons 7中打开U盘&#xff0c;报错file type exfat not configured in kernel。 原因&#xff1a; 这是因为Linux采用的文件系统和我U盘的文件系统不一致引起。如下图&#xf…

在线ppt转pdf如何转换?用这一个方法就够了

在线PPT转PDF是一种将PPT文件转换为PDF格式的便捷且常用的工具。随着科技的发展&#xff0c;PPT已经成为了商务、教育等领域中最常用的演示工具之一。PDF格式具有较好的稳定性和兼容性。PPT文件可能因为不同的操作系统、软件版本或字体缺失等原因而导致显示不一致或乱码等问题&…

【数据结构练习】单链表OJ题(二)

目录 一、相交链表二、环形链表1三、环形链表2四、链表分割五、复制带随机指针的链表 一、相交链表 题目&#xff1a; 示例&#xff1a; 注意&#xff1a;不能根据节点的值来比较是否相交&#xff0c;而是根据节点在内存中是否指向相同的位置。 例如以上图&#xff1a; 链表…

ATFX汇市:美元指数疯狂上涨,英镑单日贬值近1%

环球汇市行情摘要—— 昨日&#xff0c;美元指数上涨0.55%&#xff0c;收盘在103.95点&#xff0c; 欧元贬值0.50%&#xff0c;收盘价1.0810点&#xff1b; 日元贬值0.69%&#xff0c;收盘价145.84点&#xff1b; 英镑贬值0.98%&#xff0c;收盘价1.2600点&#xff1b; 瑞…

火山引擎边缘云,助你沉浸式回忆童年

发现了吗&#xff1f;在抖音、西瓜视频上能观看4K修复的经典港片了&#xff01;得益于抖音、中国电影资料馆、火山引擎共同发起的“经典香港电影修复计划”&#xff0c;我们童年时期看过的《大话西游之大圣娶亲》《武状元苏乞儿》等22部港片以更清晰、流畅、颜色饱满的状态回归…

基于Java+SpringBoot+vue前后端分离可盈保险合同管理系统设计实现

博主介绍&#xff1a;✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专…

【数据库】使用ShardingSphere+Mybatis-Plus实现读写分离

书接上回&#xff1a;数据库调优方案中数据库主从复制&#xff0c;如何实现读写分离 ShardingSphere 实现读写分离的方式是通过配置数据源的方式&#xff0c;使得应用程序可以在执行读操作和写操作时分别访问不同的数据库实例。这样可以将读取操作分发到多个从库&#xff08;从…

十二、pikachu之URL重定向

文章目录 1、URL重定向概述2、实战3、URL跳转的几种方式:3.1 META标签内跳转3.2 javascript跳转3.3 header头跳转 1、URL重定向概述 不安全的url跳转问题可能发生在一切执行了url地址跳转的地方。如果后端采用了前端传进来的&#xff08;可能是用户传参&#xff0c;或者之前预埋…

Allegro平台如何利用测评打造爆款产品,优化listing提升曝光度!

Allegro是波兰本土最大的电商平台&#xff0c;1999年由波兰人自己创造成立&#xff0c;75%的波兰人都知道该网站&#xff0c;Allegro的品牌认知度在波兰高达98%。也是东欧“最大”拍卖网站。 波兰的消费者非常熟悉Allegro平台&#xff0c;大部分波兰人如果想要购买商品&#x…

[uniapp] scroll-view 简单实现 u-tabbar效果

文章目录 方案踩坑1.scroll-view 横向失败2.点击item不滚动?3. scrollLeft从哪里来? 效果图 方案 官方scroll-view 进行封装 配合属性 scroll-left Number/String 设置横向滚动条位置 即可 scroll-into-view 属性尝试过,方案较难实现 踩坑 1.scroll-view 横向失败 安装…

很奇葩的Deepin下Miniconda安装之旅

前文写到安装富瀚微的工具链遇到的问题&#xff0c;接着又遇到了Miniconda的问题&#xff0c;始终停留在END这个页面。 弄了很久&#xff0c;最终怀疑是不是前面什么安装包搞错了&#xff0c;系统重装一遍&#xff0c;还是一样的问题。一通乱操作后&#xff0c;得以解决。现将过…

【AI】即使AI 时代,程序员也无需焦虑

&#x1f680;欢迎来到本文&#x1f680; &#x1f349;个人简介&#xff1a;陈童学哦&#xff0c;目前学习C/C、算法、Python、Java等方向&#xff0c;一个正在慢慢前行的普通人。 &#x1f3c0;系列专栏&#xff1a;陈童学的日记 &#x1f4a1;其他专栏&#xff1a;CSTL&…

ARP攻击分析案例

1.用户需求 最近&#xff0c;医院的部分科室工作人员反映网络时不时会出现卡顿现象。尽管网络管理员已经采用了相关技术进行排查&#xff0c;但并未发现异常情况。因此&#xff0c;我们建议借助NetInside系统进一步分析和定位问题。 2.详细分析 针对上述异常问题&#xff0c…

第五十七章 恶魔通缉令

“嗐&#xff01;居然查来查去没查着&#xff01;” 坎迪摇摇头&#xff0c;继续道&#xff0c;“突然&#xff01;你猜怎么着&#xff1f;我居然感觉天空有双眼睛在盯着我&#xff0c;吓得我都不敢抬头看&#xff01;只觉得周身痒痒&#xff0c;却有一股力量迫使我缩颈闭嘴&am…

某网站DES加密逆向分析实战

文章目录 一、抓包分析二、加密分析一、重写加密 一、抓包分析 分析站点&#xff1a; aHR0cDovL2VpcC5jaGFuZmluZS5jb20v 首先我们提交一下登陆信息&#xff1a; 搜索j_password查看加密函数: 把上图搜索到的encryptPassword函数拿出来分析一下&#xff1a; function encryptP…