Aprende en casa Ir a KODOTI
Aprende en casa KODOTI

¿Por qué usar TypeScript?

Es un lenguaje de programación mantenido por Microsoft que brinda superpoderes a JavaScript.

Rodríguez Patiño, Eduardo
Rodríguez Patiño, Eduardo
2020-07-07 | 857 lecturas

TypeScript es un lenguaje de programación de código abierto, creado y mantenido por el equipo de Microsoft que fortalece las carencias de JavaScript dándole superpoderes.

Los que conozcan C# encontrarán muy familiar el uso de TypeScript y esto se debe porque en ambos proyectos el responsable es Anders Hejlsberg.

¿Qué poderes otorga TypeScript?

TypeScript amplia las características de la programación de orientada a objetos y lo convierte en un lenguaje tipado; es decir, que podemos especificar el tipo de nuestros datos.

Veamos un ejemplo:

class Kodoti {
    public created: Date;
    public isOnline: boolean = true;

    private _version: number = 1.0;

    get version () : string {
        return 'V' + this._version.toString();
    }
}

¿Se parece a C# no?

¿Cómo interpreta el browser TypeScript?

No, el browser no entiende TypeScript, el browser entiende JavaScript. Es decir, que cuando termines de codificar tu hermoso proyecto en TypeScript, deberás compilarlo a JavaScript el cual es bastante sencillo porque TypeScript viene con su cliente para realizar esta tarea en un solo comando.

Ya .. ¿pero en que me ayuda?

Hagamos un pequeño caso para entender el beneficio.

Supongamos que queremos trabajar con el módulo de órdenes de compra y uno de nuestros compañeros que comenzó creando la clase no vino al trabajo porque se enfermó pero tenemos que presentar algo ya y nuestro jefe nos ha pedido que lo terminemos.

La clase creada por nuestro compañero es la siguiente:

class Order {
    total = 0;
    client_id;
    detail = [];

    constructor(client_id) {
        this.client_id = client_id;
    }

    add(product, quantity) {
        let detail = {
            // falta llenar las propiedades detail ..
        };

        this.detail.push(detail);
    }
}

Vemos que hay un método add que es para agregar el detalle a la orden de compra pero no tenemos idea que es el parámetro product y por lo tanto no se como llenar el detalle de la orden de compra. Asimismo, no se como voy hacer para mandar el objeto al endpoint de órdenes de compra para procesar la orden.

A diferencia de nuestro compañero, el tenía claro los parámetros necesarios para completar la orden de compra porque conocía muy bien los endpoints.

¿Qué hacemos ahora?

Fácil, descarguemos el repositorio del api de órdenes, abramos el proyecto y búsquemos el endpoint de órdenes de compra para ver las propiedades de dicha clase y con eso solucionamos el problema. Adicionalmente, el proyecto esta en Ruby, tecnología que nunca hemos visto ..

¿Se entiende la exageración no?

Entonces

Con TypeScript esto sería más sencillo, no nos importa conocer el API porque ahora trabajamos con datos tipados.

class Order {
    total:number = 0;
    client_id:number;
    detail:OrderDetail[] = [];

    constructor(client_id:number) {
        this.client_id = client_id;
    }

    add(product: Product, quantity:number) : void {
        // ..
    }
}
  • Ahora se que el parámetro product proviene de una clase Product.
  • Ahora se que el detalle de la orden es un array del tipo OrderDetail.

Entrando a dichas clases podría conocer las propiedades de estos y seguir trabajando.

Conclusión

Como JavaScript no es un lenguaje fuertemente tipado, nosotros solemos trabajar mucho con objetos anónimos y eso nos hace muchas veces ir a ciegas cuando tomamos el proyecto de otro. Con TypeScript esto deja de pasar porque se valida el tipo de dato.

Para finalizar esto, TypeScript es el lenguaje que respira Angular ..


Estudia con nosotros

🚀 Mejora tus oportunidades laborales