0Pricing
TypeScript Academy · Урок

Кортежи: типизированные массивы фиксированной длины

Определяйте кортежи для структурированных данных с известными позициями.

«Кортежи: типизированные массивы фиксированной длины» — бесплатный урок TypeScript Academy на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения TypeScript Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс TypeScript Academy содержит 4 уроков всего.

Добро пожаловать

Кортежи — это массивы с фиксированным числом элементов, где для каждой позиции задан определённый тип. Они идеально подходят для структурированных данных, таких как координаты или пары ключ-значение.

Определение кортежа

Тип кортежа перечисляет тип каждого элемента по порядку. Длина фиксирована, и каждая позиция должна содержать значение объявленного типа.
const point: [number, number] = [10, 20];
const entry: [string, number] = ['age', 25];

Доступ к элементам кортежа

Получайте доступ к элементам кортежа по индексу. TypeScript знает тип значения в каждой позиции.
const pair: [string, number] = ['Alice', 30];
const name: string = pair[0]; // string
const age: number = pair[1];  // number

Деструктуризация кортежа

При деструктуризации кортежа каждая переменная получает конкретный выведенный тип в зависимости от своей позиции.
const [x, y]: [number, number] = [5, 10];
console.log(x + y); // 15

Кортежи и массивы

Массив содержит переменное число элементов одного типа. Кортеж содержит фиксированное число элементов, которые могут иметь разные типы и находятся в определённых позициях.
const arr: number[] = [1, 2, 3, 4];   // variable length
const tup: [number, string] = [1, 'a']; // fixed: 2 elements

Необязательные элементы кортежа

Пометьте элемент кортежа как необязательный с помощью `?`. Необязательные элементы должны располагаться после обязательных.
type Named = [string, string?]; // name, optional nickname
const a: Named = ['Alice'];
const b: Named = ['Bob', 'Bobby'];

Остаточные элементы в кортежах

Кортежи могут содержать остаточный элемент, который принимает переменное число конечных элементов определённого типа.
type StringAndNumbers = [string, ...number[]];
const data: StringAndNumbers = ['scores', 90, 85, 78];

Именованные элементы кортежа

В TypeScript 4.0 появились именованные элементы кортежей. Имена улучшают читаемость, но не влияют на систему типов.
type Range = [start: number, end: number];
const r: Range = [0, 100];

Неизменяемые кортежи

Добавьте `readonly`, чтобы запретить изменение кортежа после его создания.
const origin: readonly [number, number] = [0, 0];
// origin[0] = 5; // Error

Кортежи как возвращаемые значения функций

Returning a tuple from a function is a pattern used in React hooks and utility functions to return multiple values with distinct types.
function useCounter(): [number, () => void] {
  let count = 0;
  return [count, () => { count++; }];
}

Вывод типов кортежей с помощью as const

Без `as const` литерал кортежа может быть расширен до типа массива. Используйте `as const`, чтобы вывести точный тип кортежа.
const pair = [1, 'hello'] as const;
// type: readonly [1, 'hello'] — not (number | string)[]

Быстрая проверка

Какой тип выводит TypeScript для `const t = [1, 'hello']` без каких-либо аннотаций?

Итоги

Кортежи задают массивы фиксированной длины с типизированными позициями. Используйте их для координат, пар ключ-значение и функций, возвращающих несколько значений. Добавляйте readonly, чтобы запретить изменение, а `as const` — чтобы вывести тип кортежа с литеральными значениями.

Часто задаваемые вопросы

Урок «Кортежи: типизированные массивы фиксированной длины» бесплатный?

Да — полный текст урока «Кортежи: типизированные массивы фиксированной длины» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс TypeScript Academy, подпишись на CoddyKit PRO. Курс TypeScript Academy содержит 4 уроков всего.

Чему я научусь в уроке «Кортежи: типизированные массивы фиксированной длины»?

Определяйте кортежи для структурированных данных с известными позициями. Ты практикуешь TypeScript Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать TypeScript Academy?

Предыдущий опыт не требуется. TypeScript Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.

Сколько времени занимает урок «Кортежи: типизированные массивы фиксированной длины»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке TypeScript Academy?

Да. Каждый урок TypeScript Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Типизированные массивы: T[] и Array
  2. Readonly-массивы и неизменяемые данные
  3. Кортежи: типизированные массивы фиксированной длины
  4. Перечисления: числовые и строковые константы
← Назад к TypeScript Academy