TypeScript的新类型(四):void

91 阅读1分钟

定义

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则可以对返回值进行操作。