Header Ads Widget

Ticker

6/recent/ticker-posts

Tutorial de TypeScript: Lección 3 - Operadores

TypeScript - Operadores

Operadores aritméticos

OperadorDescripciónEjemplo
+ (Adición)devuelve la suma de los operandosvar z = x + y
- (Resta)devuelve la diferencia de los valoresvar z = x - y
* (Multiplicación)devuelve el producto de los valoresvar z = x * y
/ (División)realiza la operación de división y devuelve el cocientevar z = x / y
% (Módulo)realiza la operación de división y devuelve el restovar z = x% y
++ (Incremento)Incrementa el valor de la variable en uno.x ++
- (Decremento)Disminuye el valor de la variable en uno.–Y
** (operador exponencial)Operador exponencialx ** y

Ejemplo:

1
2
3
4
5
var x = 2       
console.log(++x)
console.log(x)
console.log(x++)
console.log(x)

Resultado:

1
2
3
4
[LOG]: 3
[LOG]: 3
[LOG]: 3
[LOG]: 4

Operadores relacionales

OperadorDescripciónEjemplo
>Mas grande que(x> y)
<Menor que(x <y)
> =Mayor qué o igual a(x> = y)
<=Menor o igual a(x <= y)
==Igualdad(x == y)
===Igualdad estricta(x === y)
! =Desigualdad(x! = y)
! ==Estricta desigualdad(x! == y)

Ejemplo:

1
2
3
var x:any = 2       
console.log(x=="2")
console.log(x==="2")

Resultado:

1
2
[LOG]: true
[LOG]: false

Operadores logicos

OperadorDescripciónEjemplo
&& (Y)El operador devuelve verdadero solo si todas las expresiones especificadas devuelven verdadero(x> 10 && y> 10)
|| (O)El operador devuelve verdadero si al menos una de las expresiones especificadas devuelve verdadero(x> 10 || y> 10)
(NO)El operador devuelve el resultado inverso de la expresión. Por ejemplo:! (> 5) devuelve falso! (x> 10)

Ejemplo:

1
2
3
4
var x:number = 2 
var y:number = 4     
console.log(x==2 && y==4)
console.log(!(x==4))

Resultado:

1
2
[LOG]: true
[LOG]: true

Operadores bit a bit

OperadorDescripciónEjemplo
& (Bit a bit Y)Realiza una operación booleana AND en cada bit de sus argumentos enteros.(x & y)
(BitWise OR)Realiza una operación booleana OR en cada bit de sus argumentos enteros.(x | y)
^ (XOR bit a bit)Realiza una operación OR exclusiva booleana en cada bit de sus argumentos enteros. OR exclusivo significa que el operando uno es verdadero o el operando dos es verdadero, pero no ambos.(x ^ y)
~ (No bit a bit)Es un operador unario y opera invirtiendo todos los bits del operando.(~ x)
<< (Mayús a la izquierda)Mueve todos los bits de su primer operando a la izquierda el número de lugares especificado en el segundo operando. Los nuevos bits se llenan de ceros. Cambiar un valor a la izquierda en una posición equivale a multiplicarlo por 2, cambiar dos posiciones equivale a multiplicar por 4, y así sucesivamente.(x << 1)
>> (Mayús a la derecha)Operador de cambio a la derecha binario. El valor del operando izquierdo se mueve hacia la derecha por el número de bits especificado por el operando derecho.(x >> 1)
>>> (Desplazamiento a la derecha con cero)Este operador es como el operador >>, excepto que los bits desplazados hacia la izquierda son siempre cero.(x >>> 1)

Ejemplo:

1
2
3
4
5
6
7
8
9
var x:number = 2 
var y:number = 4     
console.log(x & y)
console.log(x | y)
console.log(x ^ y)
console.log(~x)
console.log(x>>1)
console.log(y>>>1)
console.log(y<<1)

Resultado:

1
2
3
4
5
6
7
[LOG]: 0
[LOG]: 6
[LOG]: 6
[LOG]: -3
[LOG]: 1
[LOG]: 2
[LOG]: 8

Operadores de Asignación

OperadorDescripciónEjemplo
= (Asignación simple)Asigna valores del operando del lado derecho al operando del lado izquierdoz = x + y asignará el valor de x + y en z
+ = (Agregar y asignación)Agrega el operando derecho al operando izquierdo y asigna el resultado al operando izquierdo.z + = x es equivalente a z = z + x
- = (Resta y asignación)Resta el operando derecho del operando izquierdo y asigna el resultado al operando izquierdo.z - = x es equivalente a z = z - x
* = (Multiplicar y asignar)Multiplica el operando derecho por el operando izquierdo y asigna el resultado al operando izquierdo.z * = x es equivalente a z = z * x
** = (exponencial y asignación)Exponencial el operando derecho con el operando izquierdo y asigna el resultado al operando izquierdo.z ** = x es equivalente a z = z ** x
/ = (División y asignación)Divide el operando izquierdo con el operando derecho y asigna el resultado al operando izquierdo.

Más operadores de asignación: << =, >> =, >> =, & =, | =, >>> = y ^ =

Operadores varios

El operador de negación (-)
Operadores de cadena: Operador de concatenación (+)
Operador condicional (?)

1
Condition ? true_expr : false_expr

Resultado:

1
2
3
4
var x:number = 2 
var y:number = 4 
var z:number = (x>y)?1:-1
console.log(z)

Resultado:

1
[LOG]: -1

Operador coalescente nulo: operador coalescente nulo (??)

Resultado:

1
2
3
4
var x:number = 2 
var y:number = 4 
var z:number = x??y
console.log(z)

Este operador es igual a:

1
var z:number = (x!== null && x !== undefined)?x:y

Resultado:

1
[LOG]: 2

Operador de descanso (parámetros de descanso)

Ejemplo:

1
2
3
4
5
6
7
function Func(a:any, b:any, ...params:any[]) { // used rest operator here
  console.log(a);
  console.log(b);
  console.log(params);
}
 
Func("H","E","L","L","O");

Después de compilar

1
2
3
4
5
6
7
8
9
10
11
"use strict";
function Func(a, b) {
    var params = [];
    for (var _i = 2; _i < arguments.length; _i++) {
        params[_i - 2] = arguments[_i];
    }
    console.log(a);
    console.log(b);
    console.log(params);
}
Func("H", "E", "L", "L", "O");

Resultado:

1
2
3
[LOG]: H
[LOG]: E
[LOG]: [ "L", "L", "O" ]

Operadores de tipo

tipo de operador

Ejemplo:

1
2
var x = "tutorialspots"
console.log(typeof x)

Resultado:

1
[LOG]: string

instanceof
Este operador puede usarse para probar si un objeto es de un tipo específico o no.

Ejemplo:

1
2
3
4
5
6
7
8
9
10
11
class Animal {
    name = "Alex"
    constructor(name:string){
        this.name = name
    }
    setName(newName:string):void{
        this.name = newName
    }
}
var cat = new Animal("MeoMeo")
console.log(cat instanceof Animal)

Después de compilar

1
2
3
4
5
6
7
8
9
10
11
12
var Animal = /** @class */ (function () {
    function Animal(name) {
        this.name = "Alex";
        this.name = name;
    }
    Animal.prototype.setName = function (newName) {
        this.name = newName;
    };
    return Animal;
}());
var cat = new Animal("MeoMeo");
console.log(cat instanceof Animal);

Resultado:

1
[LOG]: true

Operador de propagación

Ejemplo 1: para cadenas o literales de matriz

1
2
3
4
var a = [1,2,3]
var b = [...a, '4', 'five', 6]
 
console.log(b)

Resultado 1:

1
[LOG]: [ 1, 2, 3, "4", "five", 6 ]

Ejemplo 2: para objetos literales

1
2
3
var obj = {"a":1,"b":2}
var objClone = { ...obj };
console.log(objClone)

Resultado 2:

1
[LOG]: { "a": 1, "b": 2 }

Ejemplo 3: para llamadas a funciones

1
2
3
4
5
var obj = [2,3,4]
var myFunction = function(x:any,...params:any[]){ //rest operator
    console.log(x,params)
}
myFunction(0,1,...obj); //spread operator

Resultado 3:

1
[LOG]: 0,  [ 1, 2, 3, 4 ]

Operador de aserción no nula

Se !puede utilizar un nuevo operador de expresión posterior a la corrección para afirmar que su operando no es nulo y no está definido en contextos en los que el verificador de tipos no puede concluir ese hecho. En concreto, la operación x! produce un valor del tipo de x con nulo e indefinido excluidos. Similar a las afirmaciones de tipo de los formularios xx as T, el !operador de afirmación no nula simplemente se elimina en el código JavaScript emitido.

1
2
3
4
5
6
7
8
9
// Compiled with --strictNullChecks
function validateEntity(e?: Entity) {
  // Throw exception if e is null or invalid entity
}
 
function processEntity(e?: Entity) {
  validateEntity(e);
  let s = e!.name; // Assert that e is non-null and access name
}

Utilice el operador de aserción no nula en la clase: tutorial de TypeScript: Lección 13 - Clase

Operador de encadenamiento opcional
El nuevo?. operador para accesos opcionales a la propiedad
Ejemplo 1:

1
let x = foo?.bar.baz()

Equivalente a:

1
2
3
let x = (foo === null || foo === undefined) ?
    undefined :
    foo.bar.baz()

Ejemplo 2:

1
let x = arr?.[0]

Equivalente a:

1
2
3
let x = (arr === null || arr === undefined) ?
           undefined :
           arr[0]

Ejemplo 3: llamada opcional

1
log?.(`some content`);

Equivalente a:

1
2
3
if (log !== null && log !== undefined) {
       log(`some content`);
    }

Publicar un comentario

0 Comentarios