Operadores en TypeScript
Este artículo explica los operadores en TypeScript.
YouTube Video
Operadores en TypeScript
Los operadores en TypeScript se utilizan para realizar cálculos numéricos, comparaciones de valores y operaciones lógicas. Dado que TypeScript utiliza operadores similares a JavaScript, son fáciles de acostumbrarse, pero TypeScript permite operaciones más rigurosas utilizando la seguridad de tipos.
Los principales operadores son los siguientes:.
Operadores Aritméticos
Los operadores aritméticos se utilizan para cálculos numéricos.
Operador | Descripción | Ejemplo | Resultado |
---|---|---|---|
+ |
Suma | 5 + 3 |
8 |
- |
Resta | 5 - 3 |
2 |
* |
Multiplicación | 5 * 3 |
15 |
/ |
División | 5 / 2 |
2.5 |
% |
Resto | 5 % 2 |
1 |
++ |
Incremento (prefijo) | let x = 5; ++x |
6 |
-- |
Decremento (prefijo) | let x = 5; --x |
4 |
1let a = 10; // Initialize variable 'a' with the value 10
2let b = 3; // Initialize variable 'b' with the value 3
3
4// Perform and display arithmetic operations between 'a' and 'b'
5console.log("Addition (a + b): ", a + b); // 13
6console.log("Subtraction (a - b): ", a - b); // 7
7console.log("Multiplication (a * b):", a * b); // 30
8console.log("Division (a / b): ", a / b); // 3.333...
9console.log("Modulus (a % b): ", a % b); // 1
10
11// Demonstrate post-increment operation on 'a'
12// Output the current value of 'a' (10), then increment
13console.log("Post-increment (a++): ", a++);
14// Display the incremented value of 'a' (11)
15console.log("Value of 'a' after increment:", a);
16
17// Demonstrate pre-increment operation on 'a'
18// Increment 'a' first (12) then output
19console.log("Pre-increment (++a): ", ++a);
20
21// Demonstrate post-decrement operation on 'a'
22// Output the current value of 'a' (12), then decrement
23console.log("Post-decrement (a--): ", a--);
24// Display the decremented value of 'a' (11)
25console.log("Value of 'a' after decrement:", a);
26
27// Demonstrate pre-decrement operation on 'a'
28// Decrement 'a' first (10) then output
29console.log("Pre-decrement (--a): ", --a);
Operadores de Asignación
Los operadores de asignación asignan el valor de la derecha a la variable de la izquierda.
Operador | Descripción | Ejemplo | Resultado |
---|---|---|---|
= |
Asignación | x = 10 |
x = 10 |
+= |
Sumar y asignar | x += 5 |
x = 15 |
-= |
Restar y asignar | x -= 5 |
x = 5 |
*= |
Multiplicar y asignar | x *= 2 |
x = 20 |
/= |
Dividir y asignar | x /= 2 |
x = 5 |
%= |
Resto y asignación | x %= 3 |
x = 1 |
1let z = 5;
2z += 3;
3console.log(z); // Outputs: 8
4
5z *= 2;
6console.log(z); // Outputs: 16
Operadores de Comparación
Los operadores de comparación comparan valores y devuelven true
o false
.
Operador | Descripción | Ejemplo | Resultado |
---|---|---|---|
== |
Igual (sin comparación de tipo) | 5 == "5" |
true |
=== |
Estrictamente igual (incluye tipo) | 5 === "5" |
false |
!= |
Diferente (sin comparación de tipo) | 5 != "5" |
false |
!== |
Estrictamente diferente (incluye tipo) | 5 !== "5" |
true |
> |
Mayor que | 5 > 3 |
true |
< |
Menor que | 5 < 3 |
false |
>= |
Mayor o igual que | 5 >= 5 |
true |
<= |
Menor o igual que | 5 <= 3 |
false |
1console.log('5 == "5" :', 5 == "5"); // Outputs: true
2console.log('5 === "5" :', 5 === "5"); // Outputs: false
3console.log('5 != "5" :', 5 != "5"); // Outputs: false
4console.log('5 !== "5" :', 5 !== "5"); // Outputs: true
5console.log('5 > 3 :', 5 > 3); // Outputs: true
6console.log('5 < 3 :', 5 < 3); // Outputs: false
7console.log('5 >= 5 :', 5 >= 5); // Outputs: true
8console.log('5 <= 3 :', 5 <= 3); // Outputs: false
Operadores Lógicos
Los operadores lógicos se utilizan para combinar expresiones lógicas.
Operador | Descripción | Ejemplo | Resultado |
---|---|---|---|
&& |
Y lógico | true && false |
false |
|| |
O lógico | true || false |
true |
! |
Negación | !true |
false |
1console.log('true && false :', true && false); // Outputs: false
2console.log('true || false :', true || false); // Outputs: true
3console.log('!true :', !true); // Outputs: false
Precedencia de los Operadores Lógicos
En TypeScript, los operadores lógicos generalmente se evalúan en el orden de NOT
primero, seguido de AND
, y finalmente OR
.
NOT
Tiene la Mayor Precedencia
NOT
es un operador unario y se evalúa con la mayor precedencia.
1console.log(!true || false); // false
AND
Tiene Mayor Precedencia que OR
AND
tiene una precedencia mayor que OR
, por lo que la parte de AND
se evalúa primero.
1console.log(true || false && false); // true
Como resultado, la parte de AND
(&&
) se calcula primero, y su resultado se pasa a OR
(||
).
AND
y OR
Realizan Evaluación de Cortocircuito
En TypeScript, AND
y OR
realizan evaluación de cortocircuito. Si el resultado está determinado por el valor del lado izquierdo, la expresión del lado derecho no se evalúa.
1let a = false && console.log("This will not be printed");
2console.log(a); // false
3
4let b = true || console.log("This will not be printed");
5console.log(b); // true
En ambos casos, console.log()
no se ejecuta.
Definiendo la Precedencia de Forma Explícita
Usar paréntesis para agrupar expresiones explícitamente puede prevenir malentendidos sobre la precedencia.
1console.log(true || (false && false)); // true
Diferencias entre el Lenguaje Natural y la Interpretación en Programación
Al usar operadores lógicos, es importante ser consciente de las ambigüedades en el lenguaje natural. Por ejemplo, en la frase 'un perro blanco o un gato', podría significar 'un perro blanco o cualquier gato' o 'un perro blanco o un gato blanco'. En código, podría escribirse de la siguiente manera:.
1if (isWhite && isDog || isCat) {
2 console.log(' "A white dog" or "a cat of any color" ');
3}
4
5if (isWhite && (isDog || isCat)) {
6 console.log(' "A white dog" or "a white cat" ');
7}
Dado que el lenguaje natural puede ser ambiguo, se requiere precaución al programar y diseñar sistemas.
Operadores a Nivel de Bits
Los operadores a nivel de bits manipulan números al nivel de bits.
Operador | Descripción | Ejemplo | Resultado |
---|---|---|---|
& |
Y lógico | 5 & 1 |
1 |
` | ` | O lógico | 5 | 1 |
^ |
O exclusivo (XOR) | 5 ^ 1 |
4 |
~ |
Negación (NOT) | ~5 |
-6 |
<< |
Desplazamiento a la izquierda | 5 << 1 |
10 |
>> |
Desplazamiento a la derecha (con signo) | 5 >> 1 |
2 |
>>> |
Desplazamiento a la derecha (sin signo) | 5 >>> 1 |
2 |
1console.log('5 & 1 :', 5 & 1); // Outputs: 1 (AND operation)
2console.log('5 | 1 :', 5 | 1); // Outputs: 5 (OR operation)
3console.log('5 ^ 1 :', 5 ^ 1); // Outputs: 4 (XOR operation)
4console.log('~5 :', ~5); // Outputs: -6 (NOT operation)
5console.log('5 << 1 :', 5 << 1); // Outputs: 10 (Left shift operation)
6console.log('5 >> 1 :', 5 >> 1); // Outputs: 2 (Right shift operation)
7console.log('5 >>> 1:', 5 >>> 1); // Outputs: 2 (Unsigned right shift operation)
Operador Ternario
El operador ternario devuelve valores diferentes en función del resultado de una expresión condicional.
1let age = 20;
2let access = (age >= 18) ? "Allowed" : "Denied";
3console.log(access); // Outputs: Allowed
Operadores de Tipo
Los operadores de tipo de TypeScript incluyen lo siguiente:.
Operador | Descripción | Ejemplo | Resultado |
---|---|---|---|
typeof |
Devuelve el tipo de una variable | typeof 123 |
"number" |
instanceof |
Verifica si un objeto pertenece a una clase específica | arr instanceof Array |
true |
is |
Como un guardián de tipo, verifica si un valor es de un tipo específico | value is string |
true or false |
1console.log(typeof "Hello"); // "string"
2console.log(typeof 42); // "number"
3
4let arr: number[] = [1, 2, 3];
5console.log("arr instanceof Array : ", arr instanceof Array); // true
6
7// Example of Type Guard
8function isString(value: any): value is string {
9 return typeof value === "string";
10}
11
12let value: any = "Hello";
13if (isString(value)) {
14 console.log("Value is a string:", value); // "Value is a string: Hello"
15}
Los operadores de tipo se utilizan para verificar el tipo de un valor o convertirlo a un tipo específico.
- El operador
typeof
devuelve el tipo de una variable. - El operador
instanceof
verifica si un objeto pertenece a una clase específica. - El operador
is
se utiliza para verificar si un valor es de un tipo específico. Es parte de los guardianes de tipo de TypeScript.
Resumen
- Operadores Aritméticos: Realizan cálculos básicos.
- Operadores de Asignación: Asignan valores a variables.
- Operadores de Comparación: Comparan valores.
- Operadores Lógicos: Combinan condiciones lógicas.
- Operadores a Nivel de Bits: Realizan operaciones a nivel de bits.
- Operador Ternario: Devuelve valores en función de condiciones.
- Los operadores de tipo pueden verificar el tipo de un valor.
En TypeScript, estos operadores se pueden utilizar para escribir cálculos complejos y expresiones condicionales de manera eficiente.
Puedes seguir el artículo anterior utilizando Visual Studio Code en nuestro canal de YouTube. Por favor, también revisa nuestro canal de YouTube.