"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Por qué son necesarias las protecciones tipo? Explorando diferentes tipos y sus casos de uso

¿Por qué son necesarias las protecciones tipo? Explorando diferentes tipos y sus casos de uso

Publicado el 2024-11-08
Navegar:767

Why Are Type Guards Necessary? Exploring Different Types and Their Use Cases

¿Por qué son necesarias las protecciones tipográficas? Explorando diferentes tipos y sus casos de uso

En TypeScript, protectores de tipo desempeñan un papel esencial para hacer que el código base sea más confiable y fácil de usar para los desarrolladores. Ayudan a garantizar la seguridad de los tipos al permitir a los desarrolladores limitar los tipos, lo que ayuda con los errores de tiempo de ejecución y hace que el código sea más fácil de entender y mantener.

¿Qué son los Type Guards?

Los protectores de tipos son expresiones de funciones que realizan comprobaciones en tiempo de ejecución de los tipos, garantizando que los valores cumplan con criterios específicos antes de seguir procesándose. Ayudan a mantener la seguridad de los tipos, lo que permite a los desarrolladores manejar los valores de forma adecuada.

¿Por qué son necesarias las protecciones tipo?

En JavaScript, a menudo encuentras valores que pueden tener varios tipos, como una función que devuelve una cadena o un número. Sin protecciones de tipo, TypeScript no podría determinar el tipo exacto, lo que provocaría posibles errores de tiempo de ejecución y un comportamiento incorrecto. Las protecciones de tipo le permiten verificar el tipo de un valor en tiempo de ejecución, lo que ayuda a TypeScript a limitar los tipos y proporcionar una verificación de tipos más precisa.

Tipos comunes de protectores de tipos y sus casos de uso

1. typeof Tipo de guardias

Caso de uso: Comprobación de tipos básicos para tipos primitivos.
Ejemplo:

function printValue(value: string | number) {
  if (typeof value === "string") {
    console.log(`String value: ${value.toUpperCase()}`);
  } else {
    console.log(`Number value: ${value.toFixed(2)}`);
  }
}

Explicación: typeof es efectivo con tipos primitivos (cadena, número, booleano). Permite que la función maneje tipos de cadenas y números de manera diferente.

2. Protectores de tipo personalizados (es palabra clave)

Caso de uso: para lógica compleja, verificación de formas o interfaces personalizadas.

Ejemplo:

 interface Square {
    side: number;
  }
  interface Circle {
    radius: number;
  }

  function isSquare(shape: Square | Circle): shape is Square {
    return (shape as Square).side !== undefined;
  }

  function calculateArea(shape: Square | Circle) {
    if (isSquare(shape)) {
      return shape.side * shape.side;
    } else {
      return Math.PI * shape.radius * shape.radius;
    }
  }

Explicación: Los protectores de tipo personalizados le permiten definir funciones que verifican atributos específicos para determinar el tipo. Aquí, isSquare comprueba la presencia de la propiedad secundaria.

3. en Guardias tipo operador

Caso de uso: comprobar si un objeto tiene una propiedad específica.
Ejemplo:

 interface Car {
    drive(): void;
  }
  interface Boat {
    sail(): void;
  }

  function move(vehicle: Car | Boat) {
    if ("drive" in vehicle) {
      vehicle.drive();
    } else {
      vehicle.sail();
    }
  }

Explicación: El operador in verifica la existencia de una propiedad, lo que ayuda a TypeScript a comprender el tipo y permite el acceso a los métodos relevantes.

Conclusión

Las protecciones de tipo son una característica poderosa de TypeScript que permite una verificación de tipo precisa, reduce los errores y mejora la legibilidad y el mantenimiento del código. Al aprovechar typeof, instanciaof, protecciones de tipo personalizadas y el operador in, puede manejar tipos complejos de forma segura y eficaz en proyectos de TypeScript.

Declaración de liberación Este artículo se reproduce en: https://dev.to/naymhdev/why-are-type-guards-necessary-exploring- Different-types-and-their-use-cases-2f8e?1 Si hay alguna infracción, por favor contacto Study_golang@163 .comeliminar
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3