课程名称:2小时极速入门 TypeScript
课程章节: 第3章 TypeScript 基础 3-8 void、undefined 与 Never
主讲老师:阿莱克斯刘
课程内容:
今天学习的内容是 Typescript 的几个特殊的类型,分别是 void
、undefined
和 Never
。
void
表示空类型,只用在函数返回值的类型中。当函数没有返回值时,其类型为 void
。
function log(message:string) { console.log(message); }
log
函数只打印内容,不返回任何内容,所以它的返回值的类型为 void
。TS 的类型推断可以正确推断出:
也可以显式写明返回的类型:
function log(message:string) :void { console.log(message); }
undefined
是原生 JS 中的一个类型,它的特殊之处就是它既是一个值,又是一个类型:
let a = undefined;
变量 a
的值是 undefined
,类型也是 undefined
。
按照以前学习的函数的知识,函数没有返回值的时候,默认的返回值为 undefined
。
那么为什么上面的 log
函数的返回值类型为 void
而不是 undefined
呢?
因为 void
表示的意思是空,即物理意义上的不存在,就没这个东西。而 undefined
表示的物理上存在,但存在的这个东西没有内容。所以 log
函数没有显式返回任何内容,也就是符合 void
,压根不存在。
function log(message:string) :undefined { console.log(message); return }
先看一个例子,throwType
函数会抛出一个异常:
function throwType (code: number, message: string) { throw { code, message } } throwError(404, 'Not Found')
该函数执行,就会抛出异常,函数不能正常执行完,此时函数的返回值类型就是 never
,表示永远没有结果。
课程收获
这节课学习了 Typescript
的几个特殊的类型,void
,undefined
,never
,它们主要应用在几个特定的场景,比较容易区分。