El último escalón en la escalera que comencé hace unos meses para llegar al punto de salida del proyecto Heres es conocer TypeScript.
TypeScript es un lenguaje de programación desarrollado y mantenido por Microsoft. Su gran utilidad radica en que se trata de un lenguaje sintácticamente estricto que añade tipado estricto a JavaScript.
El desarrollo de Heres-I se va a realizar totalmente en TypeScript por una serie de razones:
Definición de tipos
Algo clave en el desarrollo complejo de un producto software es definir claramente qué es lo que vamos a utilizar y cuál es su contenido. JavaScript nos permite dejar esos conceptos sin definir, abriendo así la puerta a futuros problemas de compilado. Con TypeScript esto no sucede porque, antes de ponernos a trabajar, debemos definir nuestras variables: cómo están formadas y qué tipo de datos van a contener.
Declaración de variables de entrada y de salida a funciones
TypeScript nos «obliga» a utilizar tipos también en las entradas y salidas de nuestras funciones, de nuestros componentes. Esto hace de mecanismo de control para establecer claramente qué esperamos recibir y qué esperamos obtener en cada llamada a una función.
De nuevo, TypeScript limita mucho los posibles errores de desarrollo asociados a la ambigüedad inherente en JavaScript.
Un ejemplo de una función en TypeScript sería:
import React from 'react';
import { Entry } from '../types';
const HospitalEntry: React.FC<{ entry: Entry }> = ({ entry }) => {
return(
<div>
<h5>Hospital Check Entry</h5>
{entry.description}
</div>
);
};
export default HospitalEntry;
Es en la propia definición de la función donde ya declaramos el tipo de la entrada y de la salida, con lo que nos aseguramos en todo momento de llevar un control del flujo de datos.
Heres I, en marcha
Una vez he finalizado la parte de TypeScript y, a falta de concluir con la sección de React-Native para desarrollo móvil, ya me siento en condiciones de dar el paso con Heres I y empezar con un proyecto personal de mayor envergadura.
Los próximos devlogs estarán enfocados a una parte más teórica y estructural del desarrollo con la definición de requisitos y planificación del desarrollo de forma algo más exhaustiva.