Menu
Coddy logo textTech

Обобщенные массивы

Часть раздела Введение в TypeScript путешествия по JavaScript на Coddy — урок 60 из 73.

Массивы и дженерики прекрасно работают вместе в TypeScript. Когда вы ранее изучали типизированные массивы, вы использовали синтаксис T[], чтобы указать, что массив может содержать только элементы определенного типа. Дженерики предоставляют еще один способ выразить ту же самую концепцию.

TypeScript предоставляет альтернативный синтаксис для типизированных массивов, используя формат Array<T>:

// Эти два объявления эквивалентны:
let numbers1: number[] = [1, 2, 3];
let numbers2: Array<number> = [1, 2, 3];

Синтаксис Array<T> особенно полезен при работе с обобщенными функциями, которые оперируют массивами. Это делает обобщенную природу вашего кода более явной и читаемой, особенно когда вы создаете функции, способные работать с массивами любого типа, сохраняя при этом типобезопасность.

quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

challenge icon

Задание

Легко

Создайте универсальную функцию с именем getFirstElement, которая принимает массив любого типа и возвращает первый элемент или undefined, если массив пуст.

Функция должна:

  • Использовать параметр универсального типа T
  • Принимать один параметр с именем arr типа Array<T>
  • Возвращать первый элемент типа T или undefined
  • Иметь явную аннотацию типа возвращаемого значения T | undefined

Создайте следующие массивы, используя синтаксис Array<T>:

  • stringArray типа Array<string>, содержащий ["apple", "banana", "cherry"]
  • numberArray типа Array<number>, содержащий [10, 20, 30, 40]
  • booleanArray типа Array<boolean>, содержащий [true, false, true]
  • emptyStringArray типа Array<string>, который является пустым

Протестируйте свою функцию и выведите следующие результаты:

  • Выведите результат вызова getFirstElement с stringArray
  • Выведите результат вызова getFirstElement с numberArray
  • Выведите результат вызова getFirstElement с booleanArray
  • Выведите результат вызова getFirstElement с emptyStringArray
  • Выведите результат вызова getFirstElement с новым Array<string>, содержащим ["single"]

Шпаргалка

TypeScript предоставляет два эквивалентных синтаксиса для типизированных массивов:

// Эти два объявления эквивалентны:
let numbers1: number[] = [1, 2, 3];
let numbers2: Array<number> = [1, 2, 3];

Синтаксис Array<T> особенно полезен при работе с универсальными функциями (generics), которые оперируют массивами, делая обобщенную природу вашего кода более явной и читаемой, сохраняя при этом типобезопасность.

Попробуйте сами

// TODO: Напишите свой код здесь
// Создайте универсальную функцию getFirstElement

// Создайте необходимые массивы, используя синтаксис Array<T>

// Протестируйте функцию и выведите результаты
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Введение в TypeScript