返回顶部
首页 > 资讯 > 前端开发 > JavaScript >ts中的void和never类型及区别
  • 952
分享到

ts中的void和never类型及区别

ts void和neverts void和never类型void类型和never类型 2023-05-18 20:05:30 952人浏览 八月长安
摘要

目录ts中的void和never类型voidnever补充:void类型和never类型void类型never类型ts中的void和never类型 void   表示没有任何类型 /

ts中的void和never类型

void

  表示没有任何类型

// 没有返回值的函数,其返回值类型为 void
function warnUser(): void {
    console.log("void");
}
// 申明为 void 类型的变量,只能赋予 undefined 和 null
let unusable: void = undefined;

可以用到void 有以下几种情况

  • 函数没写return
  • 只写了 return, 没有具体的返回值
  • return 的是 undefined
// 如果什么都不写,此时,add 函数的返回值类型为: void
const add = () => {
     //
}
// 如果return之后什么都不写,此时,add 函数的返回值类型为: void
const add = () => { 
     return 
}
const add = (): void => {
  // 此处,返回的 undefined 是 js 中的一个值
  return undefined
}
// 这种写法是明确指定函数返回值类型为 void,与上面不指定返回值类型相同
const add = (): void => {
    // 
}

never

  表示永远不会有值的一种类型,任何类型都不能赋值给 never 类型的变量

  应用场景???(暂时没找到)

// 返回never的函数必须存在无法达到的终点
function infiniteLoop(): never {
    while (true) {
    }
}
// 这个函数不能申明其返回值类型
function warnUser(): void {
    console.log("void");
}
function add (a?: number, b: number = 1) {
  // ?跟在参数名字的后面,表示可选的参数
  // 注意:可选参数只能在 必须参数的后面
  // 如果可选参数在必选参数的前面,会报错
  // 设置了默认值之后,就是可选的了,不写就会使用默认值; 可选的参数一定有值。它们不能一起使用。优先使用默认值
  console.log(111);
}

补充:void类型和never类型

void类型和never类型都是ts新增的类型,这两者的共同点是都常见用于声明函数的返回值的类型,这里我们把它们两放在一起介绍有助于大家区分。 void,表示函数返回值空,即undefined。 never类型则是表示函数没有返回值,也绝不会(never)有返回值的情况发生。

void类型

可以使用变量声明方法去声明void类型,除了underfined之外不能对void类型变量赋值(null也不行),所以平时声明一个void类型的变量没有什么大用,我们一般也只有在函数没有返回值时去声明。

function fn():void{
    return underfined
}

需要注意的是 return null 不能使用于void类型的函数,所以这里我来科普下nullunderfined的区别和联系。

null和underfined相同点: 两者都是js的基本数据类型,都表示“无,没有” 在if 或者 == 隐式类型转化中,null和underfined是相同的,都表示false

null和underfined不同点:
null表示"没有对象",即该处不应该有值。典型用法是:
(1)作为函数的参数,来表示该函数的参数不是对象
(2)作为对象原型链的终点
undefined表示"缺少值",就是此处应该有一个值,但是还没有定义。典型用法是:
(1)变量被声明了,但没有赋值时,就等于undefined。
(2)对象没有赋值的属性,该属性的值为undefined。
(3)函数没有返回值时,默认返回undefined。
(4)调用函数时,应该提供的参数没有提供,该参数等于undefined。

never类型

never类型,也是用于函数的返回值,表示函数永远不会返回结果,js中有函数不返回结果的情况,一般不写return 就返回 undefined,但是这个never是什么都不返回。
比如js 的抛出错误异常函数,就不会返回任何结果:

function err(mag:string):never{
    throw new Error(msg);  
}

到此这篇关于ts中的void和never类型的文章就介绍到这了,更多相关ts void和never内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: ts中的void和never类型及区别

本文链接: https://lsjlt.com/news/212409.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • ts中的void和never类型及区别
    目录ts中的void和never类型voidnever补充:void类型和never类型void类型never类型ts中的void和never类型 void   表示没有任何类型 /...
    99+
    2023-05-18
    ts void和never ts void和never类型 void类型和never类型
  • TS 中 never,void,unknown类型详解
    目录TS 中 never,void,unknown类型详解一. never二. void(空值)三. unknown四. never与void的区别五. 其他注意事项补充:TypeS...
    99+
    2023-05-18
    TS 中 never void unknown类型 TS  never void类型
  • c++中void和int的区别
    void和int在c++中的区别:void表示没有值的类型,用于不返回值的函数。int表示整型数字类型,用于存储和操作整数。 void和int在C++中的区别 C++中,void和in...
    99+
    2024-05-14
    c++
  • TS中interface和type的区别
    在 TypeScript 中,`interface` 和 `type` 都用来定义自定义类型。它们有一些相似之处,但也有一些区别。1...
    99+
    2023-09-22
    TS
  • c++中int main和void main的区别
    c++中int main和void main的区别:返回值类型:int main()返回int值(退出状态),void main()无返回值。编译器支持:int main()标准,voi...
    99+
    2024-05-12
    c语言 c++
  • C#中值类型和引用类型的区别
    一、值类型和引用类型的区别 .NET的类型可以分为两类:值类型和引用类型。这两种类型各有特点,即使它们都继承自System.Object,并且有装箱和拆箱等操作确保两种类型可以方便地...
    99+
    2024-04-02
  • c语言中int main和void main的区别
    c语言中int main和void main的区别在于返回类型:int main返回int值,void main不返回任何值。其他区别包括:int main更标准,void main基于...
    99+
    2024-05-12
    c语言 字符串数组
  • MySQL中varchar和char类型的区别
    目录前述VARCHAR类型VARCHAR适用情况CHAR类型测试VARCHAR(5)与VARCHAR(200)的区别总结前述 VARCHAR和CHAR是两种最主要的字...
    99+
    2024-04-02
  • js中值类型和引用类型的区别介绍
    1.JavaScript中的变量类型有哪些? (1)值类型(基本类型):字符串(string)、数值(number)、布尔值(boolean)、undefined、null ...
    99+
    2024-04-02
  • php中nts和ts有什么区别
    本文操作环境:Windows10系统、PHP7.1版、Dell G3电脑。php中nts和ts有什么区别在PHP 开发和生产环境搭建过程中,需要安装PHP语言解析器。官方提供了2种类型的版本,线程安全(TS)版和非线程安全(NTS)版,有时...
    99+
    2015-12-17
    PHP
  • php中nts和ts有哪些区别
    这篇“php中nts和ts有哪些区别”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“php中nts和ts有哪些区别”文章吧。p...
    99+
    2023-06-29
  • js中值类型和引用类型的区别是什么
    这篇文章主要介绍“js中值类型和引用类型的区别是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“js中值类型和引用类型的区别是什么”文章能帮助大家解决问题。1.JavaScript中的变量类型有哪...
    99+
    2023-07-02
  • MySQL 中 DATETIME 和 TIMESTAMP 时间类型的区别及使用场景
    MySQL的日期类型简介 在 MySQL 中有两种存储时间的数据类型 DATETIME 和 TIMESTAMP,它们在数据库实际应用中,各有各的优势和劣势。 一. DATETIME 和 TIMESTAMP 的相同点 两个数据类型存储时...
    99+
    2023-09-01
    mysql sql 数据库
  • Oracle中Blob和Clob数据类型的区别及用法介绍
    Oracle数据库中的Blob和Clob数据类型在存储大型数据对象时起着重要作用。Blob用于存储二进制数据,例如图片、音频或视频文件,而Clob用于文本数据,例如长文本、HTML页面...
    99+
    2024-03-08
    - oracle - blob - clob
  • C#中引用类型和值类型有什么区别
    在C#中,引用类型和值类型是两种不同的数据类型。 值类型是直接存储在堆栈中的数据,它们保存的是实际的数据值。当值类型的变量被赋值给另...
    99+
    2024-03-07
    C#
  • Keras中Sequential模型和Functional模型的区别及说明
    目录Sequential模型和Functional模型区别Sequential模型Functional模型总结Sequential模型和Functional模型区别 Sequenti...
    99+
    2022-12-17
    Keras中Sequential模型 Keras中Functional模型 Sequential模型和Functional模型区别
  • javascript中原始类型和引用类型有什么区别
    小编给大家分享一下javascript中原始类型和引用类型有什么区别,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1、区别(1)原始类型存储的是值,引用类型存储的...
    99+
    2023-06-15
  • Java中引用类型和原始类型有什么区别
    本篇文章给大家分享的是有关Java中引用类型和原始类型有什么区别,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Java 提供两种不同的类型:引用类型和原始类型(或内置类型)。另...
    99+
    2023-06-17
  • MySQL字符串类型中VARCHAR和CHAR的区别
    前述VARCHAR和CHAR是两种最主要的字符串类型。不幸的是,很难精确地解释这些值是怎么存储在磁盘和内存中的,因为这跟存储引擎的具体实现有关。下面的描述假设使用的存储引擎是InnoDB和/或者MyISAM...
    99+
    2024-04-02
  • Redis中的Set类型和List有什么区别
    数据结构: Set类型是无序且不重复的数据集合,类似于集合。 List类型是有序且可重复的数据集合,类似于数组。 元素的唯...
    99+
    2024-04-09
    Redis
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作