如何设置Babel的可枚举属性

时间:2017-01-13 22:11:42

标签: javascript ecmascript-6 babeljs

我试图在TypeScript项目中使用与Babel一起编译的模块。但是我的静态属性和方法出错了。

这是extends的TypeScript助手。如您所见,它使用for..in

var __extends = (this && this.__extends) || function (d, b) {
    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
    function __() { this.constructor = d; }
    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};

有没有办法为Babel的静态属性/方法设置enumerable

enter image description here

1 个答案:

答案 0 :(得分:0)

ES2015 classes transform插件中有宽松选项,默认值为false。您可以将此值设置为true,如此

{
  "plugins": [
    ["transform-es2015-classes", {
      "loose": true
    }]
  ]
}

使用此设置,将在类原型对象上定义方法。但这会引起一些其他问题。

class Foo {
  set bar() {
    throw new Error("foo!");
  }
}
class Bar extends Foo {
  bar() {
    // will throw an error when this method is defined
  }
}

有关详细信息,请参阅document