null、undefined
在javascript中,null
、undefined
两个值表示缺少的意思。在typescript中也支持这两个值,而各自都有类型。类型名称也是null
和undefined
。这两个值在typescript中比较特殊:undefined
类型只有undefined
一个值,null
类型只有null
一个值。它们的语义有细微的差别,undefined
的意思是未定义,而null
表示缺少值(例如在计算一个值的过程中遇到了错误)。
void、never
在typescript中void
、never
两个类型有明确的特殊作用。
void
是函数没有显式返回任何值(例如consloe.log
)时的返回类型,而never
是函数根本不返回(例如函数抛出异常,或者永远运行下去)时使用的类型。
// 一个返回数字或者null的函数
function a(x: number) {
if (x < 10) {
return x;
} else {
return null;
}
}
// 一份返回undefined的函数
function b() {
return undefined;
}
//一个返回void的函数
function c() {
let a = 2 + 2;
let b = 2 * 2;
}
//一个返回never的函数
function d() {
throw TypeError('I always error');
}
//另一个返回never的函数
function e() {
while (true) {
doSmething();
}
}
总结
类型 | 含义 |
---|---|
null | 缺少值 |
undefined | 尚未赋值的变量 |
void | 没有return语句的函数 |
never | 永不返回的函数 |