TS 中 never,void,unknown类型详解

那么我们来详细讲解一下 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日

相关文章

  • 推荐10款扩展Web表单的JS插件

    下面我会详细讲解“推荐10款扩展Web表单的JS插件”的攻略,过程中会包含两条示例说明。 推荐10款扩展Web表单的JS插件 1. jQuery插件:jQuery Validation jQuery Validation是一个常用的表单验证插件,它提供了一系列预定义的验证规则,可以轻松地实现表单的基础验证功能,例如:必填、数字、邮箱、电话等等。 使用示例: …

    JavaScript 2023年6月10日
    00
  • cordova+vue+webapp使用html5获取地理位置的方法

    接下来我将为您讲解“cordova+vue+webapp使用html5获取地理位置的方法”的完整攻略。 1. 简介 H5的地理信息API,是HTML5新增的API之一,通过使用该API,我们可以获取到手机端、PC端等设备的地理位置信息。本文将使用Cordova+Vue框架进行H5地理信息获取的一些操作,其中,Cordova则是在构建混合APP时采用的,该方法…

    JavaScript 2023年6月11日
    00
  • 用js编写的简单的计算器代码程序

    为了编写一个简单的计算器程序,我们可采用HTML、CSS、JavaScript等技术。下面将分步骤讲解如何制作一个基于JS编写的简易计算器程序。 步骤一:创建基本的HTML代码 我们需要创建一个空白的HTML文件,并添加必要的元素,例如标题,文本输入框和按钮。通过以下HTML代码可以实现: <!DOCTYPE html> <html>…

    JavaScript 2023年5月27日
    00
  • js的Object.assign用法示例分析

    简介 Object.assign 是 ES6 新增的一个API,能够将一个或多个源对象的属性复制到目标对象上。它的参数依次为目标对象和一个或多个源对象。如果源对象中的属性已经存在在目标对象中,那么源对象中的属性值将覆盖目标对象中的属性值。 语法 Object.assign(target, …sources) 参数: target (必须):要将源对象复制…

    JavaScript 2023年5月27日
    00
  • JS闭包原理与应用经典示例

    JS闭包是指一个函数能够访问它的外部函数作用域中定义的变量,即使在外部函数返回之后依然有效。 JS闭包原理 在JavaScript中,函数是一等公民,即函数可以作为参数、可以返回值、可以嵌套在另一个函数中,形成闭包。 当函数内部有东西被引用,这里面所引用的内容会一直存在,不会被垃圾回收器清除,这就形成了闭包。 在函数内部定义一个函数,内部函数可以访问外部函数…

    JavaScript 2023年6月11日
    00
  • JavaScript中let避免闭包造成问题

    JavaScript 中,闭包是一个常见的概念,指的是函数可以访问它词法作用域范围外的变量。当我们使用闭包时,由于 JavaScript 中的变量作用域只有函数级别,所以闭包内的函数可以使用在外部定义的变量。然而,这也可能导致未预期的问题,尤其是在变量作用域范围不明确的情况下。让我们来看看如何使用 let 关键字来避免闭包造成的问题。 什么是闭包? 在 Ja…

    JavaScript 2023年6月10日
    00
  • 服务端预渲染之Nuxt(使用篇)

    服务端预渲染(Server-Side Rendering,SSR)是一种Web应用程序的开发方法,它将初始HTML和渲染的JavaScript发送给客户端,而不是在客户端浏览器中使用JavaScript再进行处理和渲染。 Nuxt.js是一个基于Vue.js的应用框架,它专注于提供一个开箱即用的服务器渲染体验。Nuxt.js 可以帮助我们快速开发、部署 Vu…

    JavaScript 2023年6月11日
    00
  • JS前端知识点总结之页面加载事件,数组操作,DOM节点操作,循环和分支

    JS前端知识点总结之页面加载事件,数组操作,DOM节点操作,循环和分支 页面加载事件 window.onload window.onload事件是在文档(包括图像、CSS和其他资源)全部加载完成时触发的事件,用于在页面加载完成后执行一些初始化操作,比如加载一些需要资源的模块或者初始化一个需要在页面加载完毕后才能使用的插件。 window.onload = f…

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