Clases y patrones
19 pasos en 5 series de TypeScript.
Donde los tipos se encuentran con el código real. Clases con propiedades de parámetro y modificadores de acceso, tipos Result discriminados para los errores, builders e inyección de dependencias, y cómo tipar cosas que involucran tiempo o caché.
Diecinueve pasos. La serie de Result es la interesante: TypeScript hace que los errores como valores sean tan cómodos que muchas bases de código dejaron de lanzar excepciones.
Clases
- Clases abstractas y genéricosUna clase base genérica con un contrato abstracto.
- Miembros de claseModificadores de acceso, propiedades de parámetro y las dos clases de privado.
- Clases abstractasUna base que no puede instanciarse, con miembros que la subclase debe proveer.
- MixinsUna función que toma una clase y devuelve una extendida.
Resultados y validación
- Un tipo ResultErrores en el tipo de retorno, para que quien llama no pueda olvidarlos.
- Tipo unión ResultUna unión discriminada para éxito o falla: los errores son valores que el compilador revisa.
- Validar datos unknownParsear en la frontera, para que el interior del programa quede tipado.
- Parseo de JSON tipado con ResultParsea JSON a un Result en vez de lanzar, así quien llama tiene que mirar.
Construcción e inyección
- Un builder tipadoEl genérico rastrea qué campos se han provisto hasta el momento.
- Inyección de dependencias por tipoDepende de una interfaz; quien llama provee lo que sea que la satisfaga.
- Store tipado mínimoUn store observable mínimo, tipado según la forma de su estado.
- Pila genéricaUna pila genérica, y un primer vistazo a lo que te da un parámetro de tipo.
- Cola genéricaUna cola FIFO genérica, la contraparte de la pila.
Tiempo y memoria
- Memoize tipadoMemoización que mantiene intacta la firma original.
- Debounce tipadoDebounce que preserva los tipos de argumentos de la función envuelta.
- Throttle tipadoThrottle con la firma de la función envuelta preservada.
- Sleep tipadoUna espera tipada, la pieza base de todo lo async que sigue.
- Reintento asyncReintenta una operación async con backoff, tipada según lo que resuelve.
Bis
- schema.tsUn validador de esquemas mínimo donde el tipo parseado se infiere del esquema.