TS 中 never,void,unknown类型详解

yizhihongxing

那么我们来详细讲解一下 TS 中 never、void 和 unknown 类型的相关知识点。

never 类型

never 类型表示永不存在的类型。也就是说,无法终止的函数或者总是抛出错误的函数的返回类型就是 never。 在实际使用中,通常用于处理不应该出现的情况或者用于避免编写无用的代码。

下面是一个示例函数,它总是会抛出异常:

function throwError(): never {
  throw new Error("something went wrong");
}

这里,throwError 函数永远不会有返回值,因为抛出了一个错误。所以,我们可以将该函数的返回值类型设定为 never

function test(): never {
  return throwError();
}

void 类型

void 类型表示没有任何值的类型。通常用于函数没有返回值的时候。下面是一个示例函数:

function printMessage(message: string): void {
  console.log(message);
}

这里,printMessage 函数不会返回任何值,因此它的返回类型是 void

unknown 类型

unknown 类型表示我们不知道某个值的确切类型。在 TypeScript 中,只有 any 类型可以被赋值给任何类型。但是,对于 unknown 类型,只有 unknownany 类型可以被赋值给它,而不能将其赋值给其他类型。因此,在 TypeScript 中使用 unknown 类型能够帮助我们更加明确地描述类型,弥补了 any 类型的缺陷。

下面是一个示例代码:

function processValue(value: unknown) {
  if (typeof value === "string") {
    console.log(value.toUpperCase());
  } else if (value instanceof Date) {
    console.log(value.toISOString());
  } else {
    console.log(value);
  }
}

这里,processValue 函数的参数类型为 unknown。在函数内部,我们使用 typeof 操作符和 instanceof 操作符检查传入的参数的类型。在不确定值的类型的情况下,我们可以使用 unknown 类型来替代 any 类型。

希望这份攻略能对你有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:TS 中 never,void,unknown类型详解 - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • js实现可控制左右方向的无缝滚动效果

    实现可控制左右方向的无缝滚动效果,可以通过以下步骤实现: 步骤一:创建HTML结构 首先,我们需要创建一个HTML结构来支持该滚动效果。可以采用如下的结构: <div class="scroll-container"> <div class="scroll-items"> <div cla…

    JavaScript 2023年6月11日
    00
  • JS函数进阶之prototy用法实例分析

    下面我详细讲解一下 “JS函数进阶之prototype用法实例分析” 的完整攻略。 1. 什么是JS中的prototype 在JavaScript中,每个函数都有一个prototype属性,它是函数构造器的原型对象,也是通过构造器创建的对象的原型。这个原型对象是一个普通对象,其中包含一些方法和属性,它们可以被构造器所创建的所有实例对象所共享。 2. prot…

    JavaScript 2023年5月28日
    00
  • 项目中使用TypeScript的TodoList实例详解

    针对“项目中使用TypeScript的TodoList实例详解”的完整攻略,我提供以下内容: 1. 什么是TypeScript? TypeScript 是一种由微软开发的开源编程语言。它是 JavaScript 的一个超集,包含了所有 JavaScript 代码的语法,但并不完全使用 JavaScript 来实现,相比 JavaScript 更加严格和类型化…

    JavaScript 2023年6月11日
    00
  • 使用php操作xml教程

    接下来我将为您详细讲解如何使用PHP操作XML文档的完整攻略。 1. 安装PHP SimpleXML模块 在使用PHP操作XML文档之前,我们需要确保已经安装了PHP SimpleXML模块。可以通过执行以下代码确认是否已安装: <?php phpinfo(); ?> 查询结果中有SimpleXML模块则表示已安装,否则需要手动安装该模块。 2.…

    JavaScript 2023年6月11日
    00
  • javascript类数组的深入理解

    JavaScript类数组的深入理解 JavaScript中的类数组是一个类似数组但却不是真正的数组的对象。它们通常具有length属性和对应的数字键,但是缺少了一些数组原型方法。JavaScript中的类数组包括函数中的arguments对象、HTMLCollection对象和NodeList对象等。 类数组的常用方法 转换为真正的数组 由于类数组不是真正…

    JavaScript 2023年5月27日
    00
  • JavaScript switch case

    JavaScript switch case语句是一种用于多个分支情况的控制流语句。它与if-else语句相似,但要更加简洁和易于阅读。通常来说,switch case可帮助开发人员避免编写过多的if-else嵌套,从而提高代码效率。 下面是JavaScript switch case的语法: switch(expression) { case value1…

    Web开发基础 2023年3月30日
    00
  • OpenTiny 跨端、跨框架组件库升级TypeScript,10万行代码重获新生

    摘要:一份精心准备的《JS项目改造TS指南》文档供大家参考,顺便介绍TS 基础知识和 TS 在 Vue 中的实践。 本文分享自华为云社区《历史性的时刻!OpenTiny 跨端、跨框架组件库正式升级 TypeScript,10 万行代码重获新生!》,作者:Kagol。 根据 The Software House 发布的《2022 前端开发市场状态调查报告》数据…

    JavaScript 2023年4月17日
    00
  • JavaScript常用截取字符串的三种方式用法区别实例解析

    JavaScript常用截取字符串的三种方式用法区别实例解析 JavaScript中常常需要对字符串进行截取,本篇文章将介绍JavaScript中常用的三种截取字符串的方式,包括 substr()、substring()、slice() 三种方法,同时详细阐述它们之间的区别和使用场景。 substr() 方法: string.substr(start,len…

    JavaScript 2023年5月28日
    00
合作推广
合作推广
分享本页
返回顶部