Class

export Class(clsDef: ClassDefinition) : ConcreteType

exported from angular2/core defined in angular2/src/core/util/decorators.ts (line 125)

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 = ng.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;
  }
});