rOACCT/node_modules/babel-plugin-transform-class-propertiesb7129946b228dev
rOACCT/node_modules/babel-plugin-transform-class-properties
b7129946b228dev
babel-plugin-transform-class-properties
babel-plugin-transform-class-properties
README.md
README.md
babel-plugin-transform-class-properties
This plugin transforms es2015 static class properties as well as properties declared with the es2016 property initializer syntax.
Example
Below is a class with four class properties which will be transformed.
js class Bork { //Property initializer syntax instanceProperty = "bork"; boundFunction = () => { return this.instanceProperty; } //Static class properties static staticProperty = "babelIsCool"; static staticFunction = function() { return Bork.staticProperty; } } let myBork = new Bork; //Property initializers are not on the prototype. console.log(myBork.prototype.boundFunction); // > undefined //Bound functions are bound to the class instance. console.log(myBork.boundFunction.call(undefined)); // > "bork" //Static function exists on the class. console.log(Bork.staticFunction()); // > "babelIsCool"
Installation
sh npm install --save-dev babel-plugin-transform-class-properties
Usage
Via .babelrc (Recommended)
.babelrc
json // without options { "plugins": ["transform-class-properties"] } // with options { "plugins": [ ["transform-class-properties", { "spec": true }] ] }
Via CLI
sh babel --plugins transform-class-properties script.js
Via Node API
javascript require("babel-core").transform("code", { plugins: ["transform-class-properties"] });
Options
spec
boolean, defaults to false.
Class properties are compiled to use Object.defineProperty. Static fields are now defined even if they are not initialized.
References
c4science · Help