javascript - 为什么要比较 void 0 而不是 undefined?(TypeScript 空值合并运算符)
问题描述
如果您不熟悉新的 TypeScript“空值合并运算符”(??
),请参阅此处:https ://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-7.html#nullish-聚结
你可以想到这个功能 - ??
null
运算符 - 作为处理or时“回退”到默认值的一种方式undefined
。
我刚刚在一些代码中第一次使用它,我注意到将运算符转换为 JavaScript 的方式有些奇怪。使用TypeScript Playground,您可以看到以下代码:
const message: string = process.env.FOO ?? 'bar';
被翻译成这样:
"use strict";
var _a;
const message = (_a = process.env.FOO, (_a !== null && _a !== void 0 ? _a : 'bar'));
由于??
测试 null 或 undefined 值,为什么要比较 tovoid 0
而不是undefined
?除了可能void 0
只是比undefined
. 还有比这更好的理由吗?
解决方案
推荐阅读
- android - SQL Lite 无法插入值
- bash - 带有空变量的 Else-If Satement 不起作用
- python-3.x - 如何在 slack 上集成 python 机器人?
- python - Python:计算行上的后续事件 - 'ValueError:无法使用空键标记索引'
- javascript - 在Vue JS中将数组子项更新为父项的正确方法是什么
- android - 如何修复“.gradle\nodejs\node-v6.7.0-win-x64\node.exe'' 以非零退出值 1 完成”
- java - 更改活动时出现“android.view.InflateException:二进制 XM 文件行”
- python - 如果值小于零并填充空白,则更改条形图的颜色
- python - Python - 如果另一列的值在列表中,Pandas 会替换列中的值
- profiling - R中的回归树