domingo, 9 de octubre de 2016

Microsoft liberó la versión 2 de typescript




Para las gente que no sabe que es typescript: TypeScript es un lenguaje que corre sobre javascript; muy similar a javascript pero con la salvedad de que TypeScript es un lenguaje fuertemente tipado. Es decir esta librería nos da un sistema de tipado para el lenguaje Javascript, además nos da clases; para poder utilizar la orientación a objetos por medio de clases como estamos más acostumbrados, no por prototipado.

Poco he hablado de typescript, dado que realmente a mi gusto no me cierra que haya tantos frameworks que busquen agregar o modificar javascript. No quiero decir que javascript sea malo, pero tal vez estamos queriendo usar un lenguaje para algo que no fue hecho y por eso tenemos que agregarle tantas cosas.

Luego de mi pequeña opinión y de una introducción, vamos a lo que concierne este post. Microsoft libero la versión 2 de typescript. Que trae como novedad?
Declaración Simplificada del archivo de dependencias,
Tipos no nuleables
Modificadores de solo lectura.

El tema de los tipos no nulos me encanta veamos un ejemplo:

// Compiled with --strictNullChecks
let x: number;
let y: number | undefined;
let z: number | null | undefined;
x = 1;  // Ok
y = 1;  // Ok
z = 1;  // Ok
x = undefined;  // Error
y = undefined;  // Ok
z = undefined;  // Ok
x = null;  // Error
y = null;  // Error
z = null;  // Ok
x = y;  // Error
x = z;  // Error
y = x;  // Ok
y = z;  // Error
z = x;  // Ok
z = y;  // Ok

Podemos declarar un método de la siguiente manera:

// Compiled with --strictNullChecks
function sum(a: number | null, b: number | null) {
    return a + b;  // Produces value of type number
}

Y el readonly en las propiedades tambien esta bueno, va un ejemplo:

class Person {
    readonly name: string;

    constructor(name: string) {
        if (name.length < 1) {
            throw new Error("Empty name!");
        }

        this.name = name;
    }
}

// Error! 'name' is read-only.
new Person("Daniel").name = "Dan";

Creo que son muy buenas, mejoras.

Dejo link:
https://www.typescriptlang.org/docs/release-notes/typescript-2.0.html