chushihua
This commit is contained in:
+83
@@ -0,0 +1,83 @@
|
||||
# babel-plugin-transform-decorators
|
||||
|
||||
> Compile class and object decorators to ES5
|
||||
|
||||
## Example
|
||||
|
||||
(examples are from proposal)
|
||||
|
||||
### Simple class decorator
|
||||
|
||||
```js
|
||||
@annotation
|
||||
class MyClass { }
|
||||
|
||||
function annotation(target) {
|
||||
target.annotated = true;
|
||||
}
|
||||
```
|
||||
|
||||
### Class decorator
|
||||
|
||||
```js
|
||||
@isTestable(true)
|
||||
class MyClass { }
|
||||
|
||||
function isTestable(value) {
|
||||
return function decorator(target) {
|
||||
target.isTestable = value;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Class function decorator
|
||||
|
||||
```js
|
||||
class C {
|
||||
@enumerable(false)
|
||||
method() { }
|
||||
}
|
||||
|
||||
function enumerable(value) {
|
||||
return function (target, key, descriptor) {
|
||||
descriptor.enumerable = value;
|
||||
return descriptor;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Installation
|
||||
|
||||
```sh
|
||||
npm install --save-dev babel-plugin-transform-decorators
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
### Via `.babelrc` (Recommended)
|
||||
|
||||
**.babelrc**
|
||||
|
||||
```json
|
||||
{
|
||||
"plugins": ["transform-decorators"]
|
||||
}
|
||||
```
|
||||
|
||||
### Via CLI
|
||||
|
||||
```sh
|
||||
babel --plugins transform-decorators script.js
|
||||
```
|
||||
|
||||
### Via Node API
|
||||
|
||||
```javascript
|
||||
require("babel-core").transform("code", {
|
||||
plugins: ["transform-decorators"]
|
||||
});
|
||||
```
|
||||
|
||||
## References
|
||||
|
||||
* [Proposal: Javascript Decorators](https://github.com/wycats/javascript-decorators/blob/master/README.md)
|
||||
Reference in New Issue
Block a user