typescript - undefined 和 void 有什么区别?
问题描述
我正在搞乱 Typescript 游乐场,我发现void
和之间的唯一区别undefined
如下:
我可以
undefined
为void
-type 变量赋值,但不能相反。一个函数的返回类型被明确声明为这两种类型中的一种(并且只有一种)将根据上述规则触发错误或无法触发错误 - 除非根本没有 return 语句,在这种情况下
void
返回值类型仍然可以接受,而undefined
返回值类型不是。
我不知道任何其他差异。还有其他区别吗?在我看来,只要相关的严格模式编译标志打开,该类型就只undefined
包含一个值——JavaScript 值undefined
——而该类型void
恰好包含两个概念值:JavaScript 值undefined
和 JavaScript 值的变体undefined
当函数通过到达其结尾而不是通过到达 return 语句或通过抛出来返回时,就会出现这种情况。(当然,undefined
就普通 JavaScript 而言,这两个值的变体是完全相同的。)
我错过了什么吗?
(我想如果某些选项发生了变化,那么null
这里也会涉及到,但我个人对此并不感兴趣,所以我没有调查过。)
解决方案
推荐阅读
- ios - 为 iOS/Xcode 的 UITextView 手动格式化以 http 或 https 开头的 url
- eclipse - 使用命令行参数设置 eclipse rcp 应用程序的工作目录
- python - 如何更新数据表的行(散景数据表)
- linux - 重新创建文件会重用以前的 inode 吗?
- javafx - 无法使用场景构建器制作 jfoenix 库的 JDialogBox
- shell - Linux 脚本命令一启动就终止
- r - H2O 深度学习模型结果,dropout 缩小
- javascript - 使用 node.js 运行 Angular 项目
- multithreading - 通过 pthread_cond_broadcast 触发多个 pthread
- android - “重新运行失败的测试”时Android Studio“在包中找到0个测试类”