定义
void的含义是空,函数不返回任何值,调⽤者也不应依赖其返回值进行任何操作!!!
- 几乎
不用void去限制变量,因为是没有意义的 - void通常⽤于
函数返回值的限制,表达:不能依赖该函数返回值进行任何操作(如if判断和赋值)
let str: void
str = 'hello' // 抱错:不能将类型“string”分配给类型“void”
function fun1(): void {}
// 无法对返回值进行操作
if (fun1()) console.log(1); // 报错:无法测试 "void" 类型的表达式的真实性。
let x: number = fun1() // 报错:不能将类型“void”分配给类型“undefined”
只接受函数返回值为undefined类型
- 只接受函数返回
undefined,没有写return的情况js会默认隐式返回undefined
function demo():void{
// 返回undefined合法,不写return也合法因为js会默认隐式返回undefined
return undefined
// 以下返回均不合法
return 100
return false
return null
return []
}
demo()
限制返回值为void和undefined的区别
- 语法层面:都是限制函数返回undefined,表示函数没有返回值。
- 语义层面:
void会告诉后来使用者和代码不能用这个函数返回值进行任何操作,undefined则可以对返回值进行操作。