我想知道这四种类型在TypeScript中的区别以及一些如何使用它们的实际例子。请不要把我的问题标记为这个的重复,因为我说的是编译时的TypeScript类型而不是Javascript值。
undefined
表示变量尚未定义
function foo(bar?: number) {
console.log(bar) // prints undefined
}
undefined
类型是一个只有一个值undefined
的基元类型。
null
值表示有意不存在任何对象值。
值null
用文字形式写:null
。null
不像undefined
那样是全局对象的属性标识符。相反,null
表示缺乏标识,表明变量不指向任何对象。在api中,null
通常在可以期望对象但没有对象相关的地方检索。
void
与undefined
非常相似。它也是包含单个undefined
值的类型。但是它在函数返回类型中有特殊的含义。在类型兼容性方面有一点不同
void
的目的是不观察函数的返回值。这与将undefined
never
意味着具有这种返回类型的函数根本无法正常返回。这意味着抛出异常或未能终止。never
的类型不包含值