typescript-void和never

这两天工作有点忙,忘记更新了,不好意思啊!

今天来说两个容易混淆的点。

void和never

这两个用来定义函数的返回值类型。默认情况下,函数是返回的void,即在没有设置返回值的情况下或者返回undefined。

而never表示函数永远不会有返回值

TypeScript 复制代码
// 返回number类型的
function testNum(): number {
    return 10;
}
// 没有返回值
function testVoid1() {
    console.log("没有返回值1");
}
function testVoid2(): void {
    console.log("没有返回值2");
}
// 永远不会有返回值
function testNever1(): never {
    throw new Error("报个错");
}
function testNever2(): never {
    console.log("never返回函数中返回number类型报错");
    return 10;
}

console.log(testNum());
console.log(testVoid1());
console.log(testVoid2());
console.log(testNever1());
console.log(testNever2());

可以看到上面的testNever2会报错,因为这里never表示永远不会有返回值,而我这里返回一个number值10.所以报错了

编译tsc index.ts

在页面中引入编译好的index.js

查看控制台输出

注:个人感觉可以这么想,void表示某个函数会执行完成;而never表示函数中有死循环,即不会执行完成,或者报错了,同样等于不会执行完成

相关推荐
coloma20121 分钟前
COCOS代码动态增加刚体和碰撞体的方法
前端·uv
●VON2 分钟前
React Native for OpenHarmony:解构 TouchableOpacity 的触摸反馈与事件流控制
javascript·学习·react native·react.js·性能优化·openharmony
有诺千金4 分钟前
VUE3入门很简单(5)---组件通信(自定义事件)
javascript·vue.js·ecmascript
想逃离铁厂的老铁5 分钟前
Day60 >> 94、城市间货物运输1️⃣ + 95、城市间货物运输 2️⃣ + 96、城市间货物运输 3️⃣
java·服务器·前端
GISer_Jing1 小时前
WebGL跨端兼容实战:移动端适配全攻略
前端·aigc·webgl
迦南giser1 小时前
前端性能——传输优化
前端
小白_ysf1 小时前
Vue 中常见的加密方法(对称、非对称、杂凑算法)
前端·vue.js·算法
2501_944448002 小时前
Flutter for OpenHarmony衣橱管家App实战:支持我们功能实现
android·javascript·flutter
人工智能训练8 小时前
【极速部署】Ubuntu24.04+CUDA13.0 玩转 VLLM 0.15.0:预编译 Wheel 包 GPU 版安装全攻略
运维·前端·人工智能·python·ai编程·cuda·vllm
会跑的葫芦怪8 小时前
若依Vue 项目多子路径配置
前端·javascript·vue.js