typescript中void与never的区别

356 阅读1分钟

void与never更多的是运用于函数返回的限制,如果这个函数不会返回任何东西(undefined算东西),没有返回的机会(比如一直在执行),或者扔(throw)不是return一个错误出去,那么应该用never,即表示这个函数绝对不(never)返回。 比如下面两个函数返回值限定为never:

1、没有返回机会

const renderGame = (game: Game): never => {
  while (true) {
    game.renderFrame()
  }
}

2、扔个错误出去

const throwError = (message: string): never => {
  throw new Error(message)
}


throwError('Error occurred')

当一个函数没有返回值,实际返回的是undefined时,就可以用void,比如

const test = (arg): void => {
  console.log(arg)
}


console.log(test('test'))