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'))