const fun = ({ aa = 1, bb = 0 } = {}) => {
console.log('aa: ' + aa);
console.log('bb: ' + bb);
return 'hello';
}
document.body.innerHTML = fun();
使用tsc进行编译:
生成的JavaScript代码:
var fun = function (_a) {
var _b = _a === void 0 ? {} : _a, _c = _b.aa, aa = _c === void 0 ? 1 : _c, _d = _b.bb, bb = _d === void 0 ? 0 : _d;
console.log('aa: ' + aa);
console.log('bb: ' + bb);
return 'hello';
};
document.body.innerHTML = fun();
可读性一般,Jerry加了一些注释:
var fun = function (_a) {
// 输入参数_a是否为undefined?如果是,赋上默认值{}, 一个空对象。如果不为空,
// 用临时变量_b 存储输入变量_a的值
// 现在_b和_a等价。
var _b = _a === void 0 ? {} : _a;
// _c存储输入变量的aa字段
var _c = _b.aa;
// 输入变量的aa字段为undefined吗?如果是,则将默认值1赋给临时变量aa, 否则使用变量传进来的aa字段的值
var aa = _c === void 0 ? 1 : _c;
// _d存储输入变量的bb字段
var _d = _b.bb;
// 输入字段的bb为undefined吗?如果是,使用默认值0,否则,使用输入变量的bb字段的实际值
var bb = _d === void 0 ? 0 : _d;
console.log('aa: ' + aa);
console.log('bb: ' + bb);
return 'hello';
};
document.body.innerHTML = fun();
网友评论