TypeScript 中的 never 和 void 有什么区别?

3 阅读1分钟

void

  • 表示函数不会返回任何类型,默认会赋值 undefined / null。
  • 函数可以正常运行。
  • 这有助于代码的可读性和类型安全。
function greet(): void {
  console.log("Hello, World!");
}

never

  • 表示函数不包含值的类型,即表示永远不存在的值。
  • 函数无限循环(无法终止)或抛出异常,无法正常返回。
function errorHandler(error): never {
  throw error;
}

function infiniteLoop(): never {
  while (true) {}
}