ts中never和viod的区别

文章类型:TypeScript

发布者:hp

发布时间:2023-05-27

一:定义

1:never

表示函数永远不会返回,或者表达式永远不会产生结果,

通常用于表示抛出异常或导致无限循环的函数

如果函数的返回类型被推断为 never,那么该函数的所有分支都必须以抛出异常或无限循环的方式终止

function throwError(message: string): never {
  throw new Error(message);
}

function infiniteLoop(): never {
  while (true) {
    // 无限循环
  }
}

2:void

表示函数没有返回值,或者表达式没有结果,

类似于 js中的 undefined,表示没有明确的值

如果函数声明返回类型为 void,可以省略返回语句,或者使用 return; 显式返回 undefined

function logMessage(message: string): void {
  console.log(message);
}

function doSomething(): void {
  // 执行一些操作,但没有返回值
}

二:区别

1:void 表示函数没有返回值或表达式没有结果,类似于 undefined

2:never 表示函数永远不会返回或表达式永远不会产生结果,常用于表示异常或无限循环