Кортежи (Tuples) — это особый вид массивов в TypeScript, где мы точно знаем количество элементов и их типы на определенных позициях. Это мощный инструмент для описания строк CSV, координат или пар «ключ-значение».
Синтаксис выглядит как [type, type]. Например, [string, number] означает, что первый элемент всегда строка, а второй — число. В этом уроке мы разберем, как правильно объявлять кортежи и зачем они нужны.
Вас ждут задачи на создание кортежей, доступ к элементам и понимание ограничений, которые они накладывают. Вы узнаете, как работает типизация при обращении по индексу. Используйте этот тренажер для отработки синтаксиса. Все задания выполняются без регистрации.
- Модуль 1: Введение в TypeScript
- Модуль 2: Примитивные типы
- Модуль 3: Специальные типы
- Модуль 4: Массивы
- Модуль 5: Кортежи (Tuples)
- Объявление кортежей.
- Опциональные элементы в кортежах.
- Rest элементы в кортежах.
- Readonly кортежи.
- Модуль 6: Объекты
- Модуль 7: Функции
- Модуль 8: Union типы
- Модуль 9: Литеральные типы
- Модуль 10: Type Aliases
- Модуль 11: Интерфейсы
- Модуль 12: Type Guards и Narrowing
- Модуль 13: Enums
- Модуль 14: Классы
- Модуль 15: Generics — основы
- Модуль 16: Generics — ограничения
- Модуль 17: Utility Types — базовые
- Модуль 18: Utility Types — работа с Union
- Модуль 19: Utility Types — функции
- Модуль 20: Type Assertions
- Модуль 21: Keyof и Typeof операторы
- Модуль 22: Mapped Types
- Модуль 23: Conditional Types
- Модуль 24: Discriminated Unions
- Модуль 25: Модули и типы
- Модуль 26: Declaration Files
- Модуль 27: Типизация асинхронного кода
- Модуль 28: Практические паттерны
1. Объявление типа кортежа
В этом задании вам нужно объявить переменную `person` как кортеж (tuple) TypeScript. Кортеж должен содержать два элемента: строку и число. Используйте предоставленные значения 'Alice' и 25. Заполните пропуски в коде так, чтобы он корректно компилировался и выводил имя и возраст. Обратите внимание на синтаксис объявления типа кортежа и присваивания значения.
let person: input1S = input2S;
let name = person[0];
let age = person[1];
console.log(name);
console.log(age);2. Распределение значений
Перед вами шесть массивов значений в TypeScript. Распределите их по трём категориям в соответствии с объявленным типом кортежа, которому они соответствуют. Каждый массив должен быть помещён в одну из категорий: [number, string], [boolean, number] или [string, boolean]. Обратите внимание на порядок и типы элементов в каждом массиве.
[1, 'hello'][true, 42]['test', false][100, 'world'][false, 0]['yes', true]3. Сборка объявления
Из предложенных фрагментов соберите корректное объявление переменной-кортежа в TypeScript. Переменная должна называться coords, иметь тип кортежа из двух чисел [number, number] и инициализироваться значением [10, 20]. Некоторые фрагменты являются лишними и не должны входить в итоговое решение.
letcoords:[number, number]=[10, 20];constcoord[string, number][20, 10]4. Доступ по индексу
Рассмотрите фрагмент кода на TypeScript, в котором объявлен кортеж (tuple) и выполняется обращение к его элементам по индексу. Определите, какое значение будет выведено в консоль. Введите это значение в поле ответа. Обратите внимание, что индексация в кортежах начинается с нуля, как и в массивах.
const user: [string, number] = ['Bob', 30];
console.log(user[1]);5. Ошибка порядка типов
В этом фрагменте TypeScript-кода объявлен кортеж с определённым порядком типов, но при присваивании значения порядок элементов нарушен. Найдите и исправьте строку с ошибкой, чтобы значения соответствовали объявленному порядку типов в кортеже.
let myTuple: [string, boolean];myTuple = [true, 'text'];console.log(myTuple[0]);console.log(myTuple[1]);6. Порядок определения
Перед вами строки кода TypeScript, которые представляют собой части объявления кортежа (tuple). Кортеж — это массив фиксированной длины с заранее известными типами элементов. Расставьте строки в правильном порядке, чтобы получилось корректное объявление кортежа с явной типизацией и присваиванием значений. Обратите внимание на последовательность: сначала определяется имя переменной, затем указывается тип кортежа, после чего присваивается массив значений.
["hello", 42]=let tuple: [string, number];7. Разметка структуры
Разметьте объявление кортежа в TypeScript, указав для выделенных фрагментов: тип первого элемента, тип второго элемента и присваиваемое значение (массив). Это задание поможет закрепить понимание синтаксиса объявления кортежей и их структуры.
let point: [{{number~|~t1}}, {{string~|~t2}}] = {{[10, "center"]~|~t3}};