never

Posted yanze

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了never相关的知识,希望对你有一定的参考价值。

never 永不存在的值得类型,不好理解,以实例为例:

函数
返回never的函数必须存在无法到达的终点,更不好理解,这里并不是指没有返回值

技术图片

 

 

 

而是指会抛出、返回错误或者无限循环

// 返回never的函数必须存在无法达到的终点
function error(message: string): never {
    throw new Error(message);
}

// 推断的返回值类型为never
function fail() {
    return error("Something failed");
}

// 返回never的函数必须存在无法达到的终点
function infiniteLoop(): never {
    while (true) {
    }
}

 

变量

永不为真的束缚(??)

常见于条件类型

type Exclude<T, U> = T extends U ? never : T;

// 相当于: type A = ‘a‘
type A = Exclude<‘x‘ | ‘a‘, ‘x‘ | ‘y‘ | ‘z‘>

也常见于

let x:never = (()=>{ throw new Error(‘exception‘)})();

 

 

以上是关于never的主要内容,如果未能解决你的问题,请参考以下文章

Java:Resource leak: 'a' is never closed怎么处理? 代码如下图:

CTF-never give up

Bugku,never never never give up

BZOJ4690: Never Wait for Weights

never

为啥 TypeScript 中引入了 `never` 类型?