Babel代码与API转换不同步

当使用Bable转换for...of循环时,发现代码转换过来,

但是SymbolAPI没有转换过来,但是单独转换Symbol又可以成功。

如何将两者同时转换?还是根本无法实现?

import 'babel-polyfill';

var arr = ['a', 'b', 'c'];
for (v of arr) {
    console.log(v);
};

转换后代码

'use strict';

import 'babel-polyfill';

var arr = ['a', 'b', 'c'];
var _iteratorNormalCompletion = true;
var _didIteratorError = false;
var _iteratorError = undefined;

try {
    for (var _iterator = arr[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
        v = _step.value;

        console.log(v);
    }
} catch (err) {
    _didIteratorError = true;
    _iteratorError = err;
} finally {
    try {
        if (!_iteratorNormalCompletion && _iterator.return) {
            _iterator.return();
        }
    } finally {
        if (_didIteratorError) {
            throw _iteratorError;
        }
    }
}

单独转换Symbol

typeof Symbol() === "symbol";

转换后

var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };

_typeof(Symbol()) === "symbol";
阅读 1.4k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题