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

相关推荐
星栈独行1 小时前
翻完 Pi 源码:它和 Codex、Claude Code 有何不同
开发语言·javascript·人工智能·程序人生
落落Plus2 小时前
浏览器缓存机制详解
javascript·缓存·浏览器缓存
用户059540174463 小时前
LLM对话记忆测试踩坑实录:手工回归30分钟,自动化后2分钟发现3个隐藏Bug
前端·css
Ashley的成长之路4 小时前
前端性能优化实战手册·第2篇:资源加载策略全解
前端·性能优化·资源加载·http/3·性能优化实战·资源加载优化
浅水壁虎4 小时前
vue基础(第二章 )
前端·javascript·vue.js
界面开发小八哥4 小时前
界面控件DevExtreme v26.1新版亮点——支持Angular 22
前端·javascript·angular.js·devexpress·ui开发·devextreme
Getflare4 小时前
前端 + UI 设计 + AI:这不是三个工种,是一个新三角能力模型(附自检清单)
前端·人工智能·ui
oil欧哟4 小时前
我做了一个 Vibe Coding 术语学习站:VibeHub
前端·ai·agent·独立开发·vibe coding
审小匠OpenCPAi5 小时前
银行流水核查怎么自动化?单边匹配、双向勾稽与图聚类异常检测的工程对比
java·前端·人工智能·python·审计