ts中的void和never类型
void
表示没有任何类型
// 没有返回值的函数,其返回值类型为 void function warnUser(): void { console.log("void"); } // 申明为 void 类型的变量,只能赋予 undefined 和 null let unusable: void = undefined;
可以用到void
有以下几种情况
- 函数没写return
- 只写了 return, 没有具体的返回值
- return 的是 undefined
// 如果什么都不写,此时,add 函数的返回值类型为: void const add = () => { // } // 如果return之后什么都不写,此时,add 函数的返回值类型为: void const add = () => { return } const add = (): void => { // 此处,返回的 undefined 是 JS 中的一个值 return undefined } // 这种写法是明确指定函数返回值类型为 void,与上面不指定返回值类型相同 const add = (): void => { // }
never
表示永远不会有值的一种类型,任何类型都不能赋值给 never
类型的变量
应用场景???(暂时没找到)
// 返回never的函数必须存在无法达到的终点 function infiniteLoop(): never { while (true) { } } // 这个函数不能申明其返回值类型 function warnUser(): void { console.log("void"); }
function add (a?: number, b: number = 1) {
// ?跟在参数名字的后面,表示可选的参数
// 注意:可选参数只能在 必须参数的后面
// 如果可选参数在必选参数的前面,会报错
// 设置了默认值之后,就是可选的了,不写就会使用默认值; 可选的参数一定有值。它们不能一起使用。优先使用默认值
console.log(111);
}