Условные операторные конструкции в TypeScript
В этой статье мы объясним условные конструкции в TypeScript.
YouTube Video
Операторы if
в TypeScript
В TypeScript оператор if
выполняет ветвление, которое выполняет код, если указанное условие имеет значение true
, и не выполняет его, если условие имеет значение false
. Оператор if
имеет тот же синтаксис, что и в JavaScript, и использует типовою безопасность TypeScript для выполнения условного ветвления.
Базовый синтаксис
Основной синтаксис оператора if
выглядит следующим образом.
1if (condition) {
2 // Code to execute if the condition is true
3} else if (anotherCondition) {
4 // Code to execute if the first condition is false
5 // and the another condition is true
6} else {
7 // Code to execute if all conditions are false
8}
- Если
condition
равноtrue
, будет выполнен код в следующем блоке. - Если
condition
равноfalse
, аanotherCondition
равноtrue
, будет выполнен код в следующем блоке. - Если ни одно условие не равно
true
, будет выполнен код в последнем блокеelse
.
Пример 1: Базовый оператор if-else
В следующем примере проверяется, равно ли значение переменной x
10 или больше, и выводится результат.
1let x: number = 15;
2
3if (x >= 10) {
4 console.log("x is 10 or greater");
5} else {
6 console.log("x is less than 10");
7}
8// Outputs: x is 10 or greater
Пример 2: Оператор if-else if-else
Чтобы проверить несколько условий, используйте else if
для добавления ветвей.
1let score: number = 85;
2
3if (score >= 90) {
4 console.log("Excellent");
5} else if (score >= 70) {
6 console.log("Passed");
7} else {
8 console.log("Failed");
9}
10// Outputs: Passed
Пример 3: Оператор if
с проверкой типов
Также можно выполнять условное ветвление для определенных типов, используя проверку типов в TypeScript. Например, проверьте тип переменной с помощью оператора typeof
и выполните соответствующую обработку.
1let value: any = "Hello";
2
3if (typeof value === "string") {
4 console.log("The value is a string: " + value);
5} else if (typeof value === "number") {
6 console.log("The value is a number: " + value);
7} else {
8 console.log("The value is of another type");
9}
10// Outputs: "The value is a string: Hello"
Пример 4: Вложенные операторы if
Вы также можете вкладывать операторы if
, чтобы проверять сложные условия.
1let age: number = 25;
2let isMember: boolean = true;
3
4if (age >= 18) {
5 if (isMember) {
6 console.log("You are a member and 18 years old or older");
7 } else {
8 console.log("You are not a member but 18 years old or older");
9 }
10} else {
11 console.log("You are under 18 years old");
12}
13// Output
14// You are a member and 18 years old or older
Тернарный оператор (условный оператор)
Синтаксис
1condition ? valueIfTrue : valueIfFalse
Если вы хотите написать оператор if
более лаконично, вы можете использовать тернарный оператор.
Пример
1const number: number = 7;
2const result: string = number % 2 === 0 ? "Even" : "Odd";
3console.log(result); // "Odd"
В этом случае, поскольку number
равно 7
, будет отображено Odd
.
Резюме
- Оператор
if
является основной управляющей конструкцией для определения того, какую обработку выполнять на основе условий. - Вы можете управлять несколькими условиями, используя
else if
. - Используя
typeof
, вы можете использовать типы TypeScript для условного ветвления. - Обработка сложных условий возможна с помощью вложенных операторов
if
. - Вы также можете использовать тернарный оператор для лаконичного написания условных ветвлений.
В TypeScript использование операторов if
с учетом типов может повысить надежность кода.
Операторы switch
в TypeScript
Оператор switch
в TypeScript представляет собой управляющую конструкцию, используемую для ветвления кода на основе нескольких условий. Вместо использования операторов if-else if
для проверки нескольких условий вы можете использовать оператор switch
для лаконичного написания логики ветвления на основе конкретных значений.
Базовый синтаксис
1switch (expressionToEvaluate) {
2 case value1:
3 // Code to execute if the expression evaluates to value1
4 break;
5 case value2:
6 // Code to execute if the expression evaluates to value2
7 break;
8 default:
9 // Code to execute if none of the conditions match
10}
В операторе switch
, если значение, указанное в case
, совпадает с вычисленным выражением, выполняется блок case
. Будьте внимательны: если отсутствует оператор break
, выполняется следующий блок case
подряд. Блок default
выполняется, если ни одно из выражений case
не совпадает.
Пример 1: Основной оператор switch
В приведенном ниже примере используется число, представляющее день недели (от 0 до 6), и на его основании выводится соответствующее название дня.
1let day: number = 3;
2
3switch (day) {
4 case 0:
5 console.log("Sunday");
6 break;
7 case 1:
8 console.log("Monday");
9 break;
10 case 2:
11 console.log("Tuesday");
12 break;
13 case 3:
14 console.log("Wednesday");
15 break;
16 case 4:
17 console.log("Thursday");
18 break;
19 case 5:
20 console.log("Friday");
21 break;
22 case 6:
23 console.log("Saturday");
24 break;
25 default:
26 console.log("Invalid day");
27}
28// Outputs: Wednesday
Пример 2: Использование default
default
полезен, поскольку выполняется, если ни одно из выражений case
не совпадает, что позволяет обрабатывать неожиданные значения.
1let statusText: string = "pending";
2
3switch (statusText) {
4 case "success":
5 console.log("Operation succeeded");
6 break;
7 case "error":
8 console.log("An error occurred");
9 break;
10 case "pending":
11 console.log("Processing");
12 break;
13 default:
14 console.log("Unknown status");
15}
16// Outputs: Processing
Пример 3: Выполнение одного процесса для нескольких case
Если вы хотите выполнить одно и то же действие для нескольких выражений case
, вы можете перечислить их последовательно.
1let fruit: string = "apple";
2
3switch (fruit) {
4 case "apple":
5 case "banana":
6 case "orange":
7 console.log("This is a fruit");
8 break;
9 default:
10 console.log("This is not a fruit");
11}
12// Outputs: This is a fruit
Пример 4: Поведение при пропуске break
Пропуск break
приводит к поведению "падения", когда выполняется следующий case
.
1let rank: number = 1;
2
3switch (rank) {
4 case 1:
5 console.log("Gold");
6 case 2:
7 console.log("Silver");
8 case 3:
9 console.log("Bronze");
10 default:
11 console.log("Not ranked");
12}
13// Outputs:
14// Gold
15// Silver
16// Bronze
17// Not ranked
Таким образом, после совпадения с case
выполняется следующий case
, поэтому обычно используется break
, чтобы предотвратить ненужное выполнение.
Резюме
- Оператор
switch
— это управляющая структура, которая позволяет лаконично писать логику ветвления на основе нескольких условий. - Каждое выражение
case
должно явным образом завершать процесс с помощьюbreak
. - Блок
default
выполняется, если ни одно из выраженийcase
не совпадает. - Также можно выполнить одну и ту же операцию для нескольких выражений
case
.
Оператор switch
в TypeScript полезен для эффективной обработки множества условий при сохранении читабельности кода.
Вы можете следовать этой статье, используя Visual Studio Code на нашем YouTube-канале. Пожалуйста, также посмотрите наш YouTube-канал.