Обобщенные массивы
Часть раздела Введение в 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> особенно полезен при работе с generic function, которые работают с arrays. Он делает generic-природу вашего кода более явной и понятной, особенно когда вы создаёте function, способные работать с arrays любого типа, сохраняя безопасность типов.
Задание
ЛегкоСоздайте generic function с именем getFirstElement, которая принимает массив любого типа и возвращает первый элемент или undefined, если массив пуст.
function должна:
- Использовать generic параметр типа
T - Принимать один параметр с именем
arrтипаArray<T> - Возвращать первый элемент типа
Tилиundefined - Иметь явную аннотацию типа возвращаемого значения
T | undefined
Создайте следующие arrays, используя syntax Array<T>:
stringArrayтипаArray<string>, содержащий["apple", "banana", "cherry"]numberArrayтипаArray<number>, содержащий[10, 20, 30, 40]booleanArrayтипаArray<boolean>, содержащий[true, false, true]emptyStringArrayтипаArray<string>, который пуст
Протестируйте свою function и выведите следующие результаты:
- Выведите результат вызова
getFirstElementсstringArray - Выведите результат вызова
getFirstElementсnumberArray - Выведите результат вызова
getFirstElementсbooleanArray - Выведите результат вызова
getFirstElementсemptyStringArray - Выведите результат вызова
getFirstElementс новымArray<string>, содержащим["single"]
Попробуйте сами
// TODO: Напишите ваш код здесь
// Создайте обобщённую функцию getFirstElement
// Создайте необходимые массивы, используя синтаксис Array<T>
// Протестируйте функцию и выведите результатыВ этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Введение в TypeScript
1Начало работы с TS
Что такое TypeScript?Зачем использовать TypeScript?Ваш первый код на TypeScriptПроцесс компиляции и ошибкиИтоги: Введение в TS4Работа с функциями
Типизация параметров и возвращаемых значенийТипизация стрелочных функцийТип возвращаемого значения 'void'Необязательные параметры с '?'Значения параметров по умолчаниюТипизация Rest-параметровОпределение типов функцийИтоги: Создание типизированных функций2Основные типы
Базовые типы: str, num, booleanТип 'any': лазейкаТип 'unknown'Работа с 'null' и 'undef'Вывод типов в действииЯвные аннотации типовИтоги: Практика по основным типам5Типы: псевдонимы, объединения и пересечения
Псевдонимы типов для примитивовТипы объединения ('|')Работа с типами объединенияЛитеральные типыТипы пересечения ('&')Комбинирование псевдонимов типовИтоги: продвинутые комбинации типов3Структуры данных: массивы и кортежи
Типизированные массивыМодификатор 'readonly' для массивовЧто такое кортеж?Объявление кортежей и доступ к нимДеструктуризация кортежейКортежи readonlyМногомерные типизированные массивыОператор spread с массивамиИтоги: массивы и кортежи6Типизация объектов и интерфейсы
Встроенные аннотации типов объектовПсевдонимы типов для объектовВведение в интерфейсыИнтерфейсы против псевдонимов типовНеобязательные и Readonly свойстваРасширение интерфейсов и типовДобавление методов в интерфейсыИтоги: Определение структуры объектов9Обобщения: первое знакомство
Проблема, которую решают обобщенияСоздание обобщенной функции IdentityИспользование обобщенной функцииОбобщенные массивыОбобщенные интерфейсыИтоги: практика по обобщенным функциямПотренируйтесь самостоятельно: Онлайн-компилятор JavaScript