Операторы в TypeScript

Операторы в TypeScript

В этой статье объясняются операторы в TypeScript.

YouTube Video

Операторы в TypeScript

Операторы в TypeScript используются для выполнения численных вычислений, сравнений значений и логических операций. Так как TypeScript использует аналогичные операторы JavaScript, к ним легко привыкнуть, однако TypeScript позволяет выполнять более строгие операции благодаря проверке типов.

Основные операторы следующие:.

Арифметические операторы

Арифметические операторы используются для численных вычислений.

Оператор Описание Пример Результат
+ Сложение 5 + 3 8
- Вычитание 5 - 3 2
* Умножение 5 * 3 15
/ Деление 5 / 2 2.5
% Остаток от деления 5 % 2 1
++ Увеличение (префикс) let x = 5; ++x 6
-- Уменьшение (префикс) 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);

Операторы присваивания

Операторы присваивания устанавливают значение справа переменной слева.

Оператор Описание Пример Результат
= Присваивание x = 10 x = 10
+= Сложить и присвоить x += 5 x = 15
-= Вычесть и присвоить x -= 5 x = 5
*= Умножить и присвоить x *= 2 x = 20
/= Разделить и присвоить x /= 2 x = 5
%= Остаток от деления и присвоить x %= 3 x = 1
1let z = 5;
2z += 3;
3console.log(z);  // Outputs: 8
4
5z *= 2;
6console.log(z);  // Outputs: 16

Операторы сравнения

Операторы сравнения сравнивают значения и возвращают true или false.

Оператор Описание Пример Результат
== Равно (без учета типа) 5 == "5" true
=== Строго равно (с учетом типа) 5 === "5" false
!= Не равно (без учета типа) 5 != "5" false
!== Строго не равно (с учетом типа) 5 !== "5" true
> Больше 5 > 3 true
< Меньше 5 < 3 false
>= Больше или равно 5 >= 5 true
<= Меньше или равно 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

Логические операторы

Логические операторы используются для объединения логических выражений.

Оператор Описание Пример Результат
&& Логическое И true && false false
|| Логическое ИЛИ true || false true
! Отрицание !true false
1console.log('true && false :', true && false);  // Outputs: false
2console.log('true || false :', true || false);  // Outputs: true
3console.log('!true         :', !true);          // Outputs: false

Приоритет логических операторов

В TypeScript логические операторы обычно оцениваются в порядке: сначала NOT, затем AND, и, наконец, OR.

NOT имеет наивысший приоритет

NOT — это унарный оператор, который оценивается с наивысшим приоритетом.

1console.log(!true || false);  // false
AND имеет более высокий приоритет, чем OR

AND имеет более высокий приоритет, чем OR, поэтому часть с AND оценивается первой.

1console.log(true || false && false);  // true

В результате сначала вычисляется часть AND (&&), а затем её результат передаётся в OR (||).

AND и OR используют короткое замыкание

В TypeScript операторы AND и OR используют короткое замыкание. Если результат определяется значением левой части, правая часть выражения не вычисляется.

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

В обоих случаях console.log() не выполняется.

Явное определение приоритета

Использование скобок для явного группирования выражений может предотвратить недоразумения по поводу приоритета операций.

1console.log(true || (false && false));  // true
Различия между естественным языком и интерпретацией программ

При использовании логических операторов важно учитывать неоднозначности естественного языка. Например, фраза «белая собака или кошка» может означать как «белая собака или любая кошка», так и «белая собака или белая кошка». В коде это можно записать следующим образом:.

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}

Поскольку естественный язык может быть неоднозначным, требуется осторожность при написании кода и разработке систем.

Побитовые операторы

Побитовые операторы работают с числами на уровне битов.

Оператор Описание Пример Результат
& Логическое И 5 & 1 1
` ` Логическое ИЛИ 5 | 1
^ Исключающее ИЛИ (XOR) 5 ^ 1 4
~ Отрицание (NOT) ~5 -6
<< Сдвиг влево 5 << 1 10
>> Сдвиг вправо (знаковый) 5 >> 1 2
>>> Сдвиг вправо (беззнаковый) 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)

Тернарный оператор

Тернарный оператор возвращает разные значения в зависимости от результата условного выражения.

1let age = 20;
2let access = (age >= 18) ? "Allowed" : "Denied";
3console.log(access);  // Outputs: Allowed

Операторы типов

Операторы типов в TypeScript включают следующие:.

Оператор Описание Пример Результат
typeof Возвращает тип переменной typeof 123 "number"
instanceof Проверяет, принадлежит ли объект определенному классу arr instanceof Array true
is В качестве охранного типа проверяет, является ли значение определенного типа 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}

Операторы типов используются для проверки типа значения или его преобразования в определенный тип.

  • Оператор typeof возвращает тип переменной.
  • Оператор instanceof проверяет, принадлежит ли объект определенному классу.
  • Оператор is используется для проверки, является ли значение определенным типом. Это часть охранных типов в TypeScript.

Резюме

  • Арифметические операторы: Выполняют базовые вычисления.
  • Операторы присваивания: Присваивают значения переменным.
  • Операторы сравнения: Сравнивают значения.
  • Логические операторы: Комбинируют логические условия.
  • Побитовые операторы: Выполняют операции на побитовом уровне.
  • Тернарный оператор: Возвращает значения на основе условий.
  • Операторы типов могут проверять тип значения.

В TypeScript эти операторы можно использовать для эффективного написания сложных вычислений и условных выражений.

Вы можете следовать этой статье, используя Visual Studio Code на нашем YouTube-канале. Пожалуйста, также посмотрите наш YouTube-канал.

YouTube Video