首页 > 其他分享 >Typescript中的never类型

Typescript中的never类型

时间:2023-12-25 10:57:07浏览次数:31  
标签:case Typescript return color never switch 类型

在 TypeScript 中,never 类型表示那些永远不会发生的类型。它通常用来表示以下情况:

  1. 函数的返回类型:如果一个函数永远不会返回(例如抛出异常或进入无限循环),可以将其返回类型标注为 never
function throwError(message: string): never {
  throw new Error(message);
}

function infiniteLoop(): never {
  while (true) {
    // 无限循环
  }
}
  1. switch 语句的 exhaustive 检查:当针对某个可枚举类型的变量进行 switch 语句时,使用 never 类型可以确保所有可能的情况都被覆盖,避免遗漏情况。
type Color = "Red" | "Green" | "Blue";

function getColorValue(color: Color): number {
  switch (color) {
    case "Red":
      return 1;
    case "Green":
      return 2;
    case "Blue":
      return 3;
    default:
      const exhaustiveCheck: never = color; // 当所有情况都已处理时,这里的值不会被赋值到
      throw new Error(`Unhandled color: ${exhaustiveCheck}`);
  }
}

never 类型是一种特殊的底层类型,它是所有其他类型的子类型,但没有任何类型是 never 的子类型或可以赋值给 never 类型。因此,当 TypeScript 推断出某个表达式的类型为 never 时,通常表示出现了类型错误或不可到达的代码路径

标签:case,Typescript,return,color,never,switch,类型
From: https://www.cnblogs.com/crispyChicken/p/17925657.html

相关文章

  • Typescript中的类型断言
    类型断言(TypeAssertion)是TypeScript中的一种语法,用于手动指定一个值的类型。它类似于其他语言中的类型转换,但是在TypeScript中,类型断言并不会改变变量的底层类型。在使用类型断言时,需要使用尖括号或者as关键字来指定目标类型。例如:constvalue:any='helloworld';con......
  • 变量与基本数据类型
    一,程序员的自我修养---注释注释:指在程序代码中对程序进行解释说明的文字 他只能给人类阅读不能给机器执行作用:可以用来写一些代码的思路的解释,帮助他人和未来的自己理解代码的意思1.1单行注释python使用#号作为单行注释的符号语法格式#注释内容#print(555)说......
  • Typescript 类型基础操作
    Typescript类型基础Typescript的类型系统非常强大,它可以让你通过类型操作符基于现有的类型创建出新的类型。在面对复杂的类型需求的时候,可以通过下面的常见类型操作使类型创建更加简单、代码更加容易维护。1、泛型泛型主要是为了解决类型复用的问题。可以说泛型给了你在使用......
  • Typescript 函数详解
    前言虽然JS/TS支持面向对象编程,但大部分时候还是在写函数。函数是一等公民。本文介绍下如何在TypeScript中使用函数,包括:函数类型声明函数参数类型:可选参数、默认参数、剩余参数函数返回值类型this类型函数重载函数类型面试中经常会被问到,JS中有哪几种数据类型。其中就会有函......
  • Go 语言学习指南:变量、循环、函数、数据类型、Web 框架等全面解析
    学习基础知识掌握Go语言的常见概念,如变量、循环、条件语句、函数、数据类型等等。深入了解Go基础知识的好起点是查阅Go官方文档文章链接:Go编程语言详解:用途、特性、与Python和C++的比较基本语法了解Go语言的基本语法,包括Go程序的执行方式、包引入、主函数等Go......
  • Go 语言学习指南:变量、循环、函数、数据类型、Web 框架等全面解析
    学习基础知识掌握Go语言的常见概念,如变量、循环、条件语句、函数、数据类型等等。深入了解Go基础知识的好起点是查阅Go官方文档文章链接:Go编程语言详解:用途、特性、与Python和C++的比较基本语法了解Go语言的基本语法,包括Go程序的执行方式、包引入、主函数等Go......
  • redis数据类型及指令
    ......1、list----------队列(先进先出)2、set-----------无序、两端取值、可遍历3、zset-----------有序set、两端取值、可遍历 String常用指令1、setkeyvalue2、getkey3、msetkey1val1key2val2.....4、mgetkey1key2.....5、setkey5----------设置字符......
  • 【Java 进阶篇】Jedis 操作 Hash:Redis中的散列类型
    在Redis中,Hash是一种存储键值对的数据结构,它适用于存储对象的多个属性。Jedis作为Java开发者与Redis交互的工具,提供了丰富的API来操作Hash类型。本文将深入介绍Jedis如何操作Redis中的Hash类型数据,通过生动的代码示例和详细的解释,助你轻松掌握Jedis中Hash的各种操作。Jedis中Hash的......
  • MIME 类型列表
    扩展名文档类型MIME类型描述.aacAACaudioaudio/aacAAC(AdvancedAudioCoding)是一种音频编码格式,通常用于数字音频广播和流媒体服务。.abwAbiWorddocumentapplication/x-abiwordAbiWord是一个开源的文字处理软件,而.abw是其默认的文档格式。.arcA......
  • Go 泛型之类型参数
    Go泛型之类型参数一、Go的泛型与其他主流编程语言的泛型差异Go泛型和其他支持泛型的主流编程语言之间的泛型设计与实现存在差异一样,Go的泛型与其他主流编程语言的泛型也是不同的。我们先看一下Go泛型设计方案已经明确不支持的若干特性,比如:不支持泛型特化(specialization),即......