.l-main-section
h2(class="function export") Class
pre.prettyprint
code.
Class(clsDef: ClassDefinition) : Type
p.location-badge.
exported from angular2/annotations
defined in angular2/src/util/decorators.ts (line 124)
:markdown
Provides a way for expressing ES6 classes with parameter annotations in ES5.
## Basic Example
```
var Greeter = ng.Class({
constructor: function(name) {
this.name = name;
},
greet: function() {
alert('Hello ' + this.name + '!');
}
});
```
is equivalent to ES6:
```
class Greeter {
constructor(name) {
this.name = name;
}
greet() {
alert('Hello ' + this.name + '!');
}
}
```
or equivalent to ES5:
```
var Greeter = function (name) {
this.name = name;
}
Greeter.prototype.greet = function () {
alert('Hello ' + this.name + '!');
}
```
## Example with parameter annotations
```
var MyService = neg.Class({
constructor: [String, [new Query(), QueryList], function(name, queryList) {
...
}];
});
```
is equivalent to ES6:
```
class MyService {
constructor(name: string, @Query() queryList: QueryList) {
...
}
}
```
## Example with inheritance
```
var Shape = ng.Class({
constructor: (color) {
this.color = color;
}
});
var Square = ng.Class({
extends: Shape,
constructor: function(color, size) {
Shape.call(this, color);
this.size = size;
}
});
```