Manejo de errores en TypeScript: patrones que escalan

La mayoría de las bases de código en TypeScript manejan errores de la misma forma en que JavaScript siempre lo ha hecho: bloques try/catch por todas partes, errores capturados unknown convertidos a any, y la esperanza de que nada importante se escape. El sistema de tipos que debía protegerte está completamente ciego ante los caminos de fallo. Hay una mejor forma, y no requiere una biblioteca.

El problema fundamental de try/catch como estrategia principal de manejo de errores es que los errores se vuelven invisibles a nivel de tipos. La firma de una función promete que devuelve User, pero podría lanzar cinco excepciones diferentes. Quien la llama no tiene forma de saberlo sin leer la implementación.