Clases

En caso de que queramos poder instanciar una clase, necesitaremos un constructor, ya que ha diferencia de lenguajes como java no tiene un contructor por defecto. es por eso que si queremos utilizar la palabra reservada new tenemos que crear un constructor con la palabra reservada constructor.

class Startup {

     private text: String;

     constructor (texto: String) {

         this.text = texto;

     }

     public main () : number {

         console.log(this.text);
         return 0;

     }

}

let s = new Startup("Hola mundo");
s.main();
class Startup {

     public static main(): number {

         console.log('Hola mundo');
         return 0;

     }

}

Startup.main();

Otro ejemplo podría ser este:

Typescript

//------ calculos.ts ------
class Calculo {
    // variables de clase declaradas y asignadas
    private x: number = 0;
    private y: number = 0;

    // constructor
    constructor (x: number, y: number){
        // métodos del constructor
        this.setX(x);
        this.setY(y);
    }

    // Setters
    public setX(x: number) : void{
        this.x = x;
    }

    public setY(y: number) : void{
        this.y = y;
    }

    // Getters
    public getX(): number {
        return this.x;
    }

    public getY(): number {
        return this.y;
    }

    public sumar() : number {
        return (this.getX() + this.getY());
    }

    public restar() : number{
        return ( this.mayor() - this.menor() );
    }

    public menor() : number {
        if(this.getX() >= this.getY()) {
            return this.getY();
        }
        return this.getX();
    }

    public mayor() : number {
        if(this.getX() >= this.getY()) {
            return this.getX();
        }
        return this.getY();
    }
}

let calculo = new Calculo(30,10);

console.log(calculo.restar());

Javascript

//------ calculos.js ------
var Calculo = (function () {
    // constructor
    function Calculo(x, y) {
        // variables de clase declaradas y asignadas
        this.x = 0;
        this.y = 0;
        // métodos del constructor
        this.setX(x);
        this.setY(y);
    }
    // Setters
    Calculo.prototype.setX = function (x) {
        this.x = x;
    };
    Calculo.prototype.setY = function (y) {
        this.y = y;
    };
    // Getters
    Calculo.prototype.getX = function () {
        return this.x;
    };
    Calculo.prototype.getY = function () {
        return this.y;
    };
    Calculo.prototype.sumar = function () {
        return (this.getX() + this.getY());
    };
    Calculo.prototype.restar = function () {
        return (this.mayor() - this.menor());
    };
    Calculo.prototype.menor = function () {
        if (this.getX() >= this.getY()) {
            return this.getY();
        }
        return this.getX();
    };
    Calculo.prototype.mayor = function () {
        if (this.getX() >= this.getY()) {
            return this.getX();
        }
        return this.getY();
    };
    return Calculo;
}());
var calculo = new Calculo(30, 10);
console.log(calculo.restar());

Otro ejemplo algo más visual sería el siguiente:

class Greeter {
    greeting: string;
    constructor(message: string) {
        this.greeting = message;
    }
    greet() {
        return "Hello, " + this.greeting;
    }
}

let greeter = new Greeter("world");

let button = document.createElement('button');
button.textContent = "Say Hello";
button.onclick = function() {
    alert(greeter.greet());
}

document.body.appendChild(button);

TypeScript también admite que las clases tengan propiedades estáticas compartidas por todas las instancias de la clase, la manera natural de acceder a estos atributos estáticos sería:

class Something {
  static instances = 0;
  constructor() {
    // Acedemos directamente mediante el nombre de la clase
    Something.instances++;
  }
}
var s1 = new Something();
var s2 = new Something();
console.log(Something.instances); // 2

results matching ""

    No results matching ""