shichen b6c5ecc67a init hace 10 meses
..
lib b6c5ecc67a init hace 10 meses
.npmignore b6c5ecc67a init hace 10 meses
README.md b6c5ecc67a init hace 10 meses
package.json b6c5ecc67a init hace 10 meses

README.md

babel-plugin-transform-es2015-arrow-functions

Compile ES2015 arrow functions to ES5

Example

In

var a = () => {};
var a = (b) => b;

const double = [1,2,3].map((num) => num * 2);
console.log(double); // [2,4,6]

var bob = {
  _name: "Bob",
  _friends: ["Sally", "Tom"],
  printFriends() {
    this._friends.forEach(f =>
      console.log(this._name + " knows " + f));
  }
};
console.log(bob.printFriends());

Out

var a = function a() {};
var a = function a(b) {
  return b;
};

var double = [1, 2, 3].map(function (num) {
  return num * 2;
});
console.log(double); // [2,4,6]

var bob = {
  _name: "Bob",
  _friends: ["Sally", "Tom"],
  printFriends: function printFriends() {
    var _this = this;

    this._friends.forEach(function (f) {
      return console.log(_this._name + " knows " + f);
    });
  }
};
console.log(bob.printFriends());

Try in REPL

Installation

npm install --save-dev babel-plugin-transform-es2015-arrow-functions

Usage

Via .babelrc (Recommended)

.babelrc

// without options
{
  "plugins": ["transform-es2015-arrow-functions"]
}

// with options
{
  "plugins": [
    ["transform-es2015-arrow-functions", { "spec": true }]
  ]
}

Via CLI

babel --plugins transform-es2015-arrow-functions script.js

Via Node API

require("babel-core").transform("code", {
  plugins: ["transform-es2015-arrow-functions"]
});

Options

  • spec - This option wraps the generated function in .bind(this) and keeps uses of this inside the function as-is, instead of using a renamed this. It also adds a runtime check to ensure the functions are not instantiated.