Mis apuntes de desarrollo web </>

Tipos de datos

Como su nombre indica, todo en Typescript trata de tipos. Como Typescript es la versión tipificada de JS, se puede especificar tipos a las variables cuando se declaran.

Esto hace que el código sea más escalable y fiable, y se puede comprobar que el código se ejecuta correctamente antes del tiempo de ejecución.

Javascript está tipado dinámicamente, lo que significa que no conoce el tipo de su variable hasta el tiempo de ejecución y las variables pueden cambiar de tipo. Incluso si se cambian intencionadamente, a menudo surgen errores y fallos. Typescript ayuda con este problema añadiendo tipos estáticos al código.

Tipo Any:
Una variable puede ser de cualquier tipo. Si usamos este tipo va a IGNORAR el tipado de Typescript.
ejemplo Any
Tipo Built-in:
Incluye los tipos de datos primitivos de Javascript (el número, la cadena, el booleano, el indefinido, el nulo y el vacío).
Ejemplo Built-in
Tipo Compuestos:
Estructuras de datos:
User-defined:

Nota: Intentar escribir los menos tipos de datos posibles. Todo lo que pueda hacer automáticamente Typescript, dejar que lo haga.

Asersiones de tipos

ejemplo contexto asersiones de tipos

En este ejemplo TypeScript NO sabe que tipo de elemento HTML es canvas, por lo que por defecto está devolviendo un HTMLElement en caso de que encuentre el elemento o más posiblemente un NULL en caso de que no lo encuentre.

Cuando el dev conoce más que el compilador de TypeScript es necesario un mecanismo que permita hacer una conversión de tipos de datos. En tal caso le estamos diciendo al compilador "confía en mi, sé lo que estoy haciendo".

ejemplo asersiones de tipos

Narrowing

Es una técnica que se usa sobre todo en los parámetros de una función. Consiste en que por medio de validaciones se puede modificar el flujo de la función dependiendo si sus parámetros aceptan varios tipos de datos a la vez mediante uniones de tipos.

La forma más común de Narrowing se observa usando el operador typeof y condicionales, de este manera se puede controlar cómo actuará esa función de manera controlada y evitando bugs.

ejemplo Narrowing

Type Never

El tipo never representa el tipo de valores que nunca ocurren.

ejemplo never