TypeScript 基础指南:Void 和 Never

部分
1
void 类型

void 类型表示一个没有返回值的值。它通常用于表示函数没有返回值。

代码示例
function printMessage(): void {
  console.log("Hello World!");
}
部分
2
never 类型

never 类型表示一个永远不会发生的值。它通常用于表示函数抛出错误或进入无限循环。

代码示例
function infiniteLoop(): never {
  while (true) {
    // 无限循环
  }
}

function throwError(): never {
  throw new Error("An error occurred!");
}
部分
3
void和never之间的区别
返回值
void 表示函数或方法不返回任何值,而 never 表示函数或方法永远不会返回。
终止
void 函数或方法正常终止,而 never 函数或方法永远不会终止。
类型兼容性
void 不是 never 的子类型,但 never 是 void 的子类型。
代码示例
// void 类型
let x: void; // 没有任何值
x = undefined; // 赋值为 undefined 是允许的

// never 类型
let y: never; // 没有任何值
y = throwError(); // 赋值为抛出异常的函数是允许的
y = infiniteLoop(); // 赋值为进入无限循环的函数也是允许的
注意
void 和 never 类型的变量不能与其他类型的变量进行比较。
void 和 never 类型的变量不能用于条件表达式中。