babel 配置
"scripts": {
"babel": "babel src/index.js --out-file src/babel_test.js",
}
"devDependencies": {
"babel-cli": "^6.26.0",
"babel-plugin-transform-decorators-legacy": "^1.3.5",
"babel-preset-env": "^1.7.0"
}
{
"presets": ["env"],
"plugins": ["transform-decorators-legacy"]
}
es6 类的转换
class Demo {
constructor() {
console.log("init");
}
say() {
console.log("say");
}
static print() {
console.log("print");
}
}
const ins = new Demo();
- 转换后代码
- 通过 构造函数 实现 constructor
- 通过 Object.defineProperty 实现原型属性和静态属性
"use strict";
var _createClass = (function () {
function defineProperties(target, props) {
for (var i = 0; i < props.length; i++) {
var descriptor = props[i];
descriptor.enumerable = descriptor.enumerable || false;
descriptor.configurable = true;
if ("value" in descriptor) descriptor.writable = true;
Object.defineProperty(target, descriptor.key, descriptor)