TypeScript中void, never, null和undefined的区别是什么?什么时候使用它们?



我想知道这四种类型在TypeScript中的区别以及一些如何使用它们的实际例子。请不要把我的问题标记为这个的重复,因为我说的是编译时的TypeScript类型而不是Javascript值。

  1. undefined表示变量尚未定义
function foo(bar?: number) {
console.log(bar) // prints undefined
}

undefined类型是一个只有一个值undefined的基元类型。

  1. null值表示有意不存在任何对象值。

null用文字形式写:nullnull不像undefined那样是全局对象的属性标识符。相反,null表示缺乏标识,表明变量不指向任何对象。在api中,null通常在可以期望对象但没有对象相关的地方检索。

  1. voidundefined非常相似。它也是包含单个undefined值的类型。但是它在函数返回类型中有特殊的含义。在类型兼容性方面有一点不同

void的目的是不观察函数的返回值。这与将undefined

  1. never意味着具有这种返回类型的函数根本无法正常返回。这意味着抛出异常或未能终止。never的类型不包含值

最新更新