Capítulo 5. La insensatez y el tipo cualquiera

Este trabajo se ha traducido utilizando IA. Agradecemos tus opiniones y comentarios: translation-feedback@oreilly.com

Los sistemas de tipos eran tradicionalmente asuntos binarios: o un lenguaje tenía un sistema de tipos totalmente estático o uno totalmente dinámico. TypeScript difumina la línea, porque su sistema de tipos es opcional y gradual. Eres libre de añadir tipos a partes de tu programa, pero no a otras.

Esto es esencial para migrar poco a poco las bases de código JavaScript existentes a TypeScript(Capítulo 10). La clave para ello es el tipo any, que efectivamente desactiva la comprobación de tipos para partes de tu código. Es a la vez potente y propenso al abuso. Aprender a utilizar any sabiamente es esencial para escribir un TypeScript eficaz. Este capítulo te explica cómo limitar los inconvenientes de any sin perder sus ventajas.

El tipo any es sólo el ejemplo más extremo del problema más general de falta de solidez: cuando el tipo estático de un símbolo no coincide con su tipo en tiempo de ejecución. Aunque elimines todos los anys de tu código, puedes caer en trampas de solidez. El tema 48 presenta algunas de ellas y te muestra cómo evitarlas.

Tema 43: Utiliza el ámbito más reducido posible para cualquier tipo

Considera este código:

declare function getPizza(): Pizza;
function eatSalad(salad: Salad) { /* ... */ }

function eatDinner() {
  const pizza = getPizza();
  eatSalad(pizza);
  //       ~~~~~
  // Argument of type 'Pizza' is not ...

Get TypeScript Eficaz, 2ª Edición now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.