此博客是本人从学生时代开始做笔记所用, 部分是工作所遇问题,做填坑笔记,部分闲来查阅资料,加上自己的理解所总结的学习笔记, 常忙得不可开交,若漏了资料来源,望通知~ 前路漫漫,写点东西告诉自己正在一点点进步,而不要迷失于繁忙。

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')})();

 

 

posted @ 2020-02-01 18:30  炎泽  阅读(353)  评论(0编辑  收藏  举报