TypeScript 基础类型 —— Never

声明为 Never 类型表示永远不存在的值的类型。

Never 类型可以用来表示会抛出异常或根本不会有返回值的函数表达式或箭头函数表达式的返回值类型;被永不为真的类型保护所约束时的变量也可用 Never 来表示。

function exceptionHandle(msg: string): never{
    throw new Error(msg)
}
// 推断的返回值类型为never
function errorHandle(){
    return Error('This is error')
}
// 返回never的函数必须存在无法达到的终点
function stopLoop(): never {
    while (true) {}
}

编译成js:

// 返回never的函数必须存在无法达到的终点
function exceptionHandle(msg) {
    throw new Error(msg);
}
// 推断的返回值类型为never
function errorHandle() {
    return Error('This is error');
}
// 返回never的函数必须存在无法达到的终点
function stopLoop() {
    while (true) { }
}

never 是其它类型(包括 nullundefined)的子类型,也可以赋值给任何类型。

let res: never
let num: number = 1
// never 类型可以赋值给 never类型
res = (() => {
    throw new Error('error')
})()
// never 类型可以赋值给 数字类型
num = (() => {
    throw new Error('error')
})()

编译成js:

var res;
var num = 1;
// never 类型可以赋值给 never类型
res = (function () {
    throw new Error('error');
})();
// never 类型可以赋值给 数字类型
num = (function () {
    throw new Error('error');
})();

但是,没有类型是 never的子类型或可以赋值给 never 类型(除了 never 本身之外)。 即使 any 也不可以赋值给 never。如下:

let res: never
let num: number = 1
res = 1

会报错:
在这里插入图片描述

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值