schangxiang@126.com
2025-09-19 0821aa23eabe557c0d9ef5dbe6989c68be35d1fe
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
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)