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表示函数中有死循环,即不会执行完成,或者报错了,同样等于不会执行完成

相关推荐
小李子呢02114 小时前
前端八股CSS(2)---动画的实现方式
前端·javascript
GreenTea6 小时前
从 Claw-Code 看 AI 驱动的大型项目开发:2 人 + 10 个自治 Agent 如何产出 48K 行 Rust 代码
前端·人工智能·后端
渣渣xiong7 小时前
从零开始:前端转型AI agent直到就业第五天-第十一天
前端·人工智能
布局呆星7 小时前
Vue3 | 组件通信学习小结
前端·vue.js
C澒7 小时前
IntelliPro 企业级产研协作平台:前端智能生产模块设计与落地
前端·ai编程
OpenTiny社区8 小时前
重磅预告|OpenTiny 亮相 QCon 北京,共话生成式 UI 最新技术思考
前端·开源·ai编程
前端老实人灬8 小时前
web前端面试题
前端
Moment8 小时前
AI 全栈指南:NestJs 中的 Service Provider 和 Module
前端·后端·面试
IT_陈寒8 小时前
为什么我的JavaScript异步回调总是乱序执行?
前端·人工智能·后端