group-telegram.com/reactify_IT/1362
Create:
Last Update:
Last Update:
Посмотрите видео -> Выполните задания самостоятельно.
Задание 1
Создайте функцию createArray
с использованием дженериков. Функция должна принимать два аргумента:
- Тип элемента T
,
- Количество элементов length
— число, указывающее количество элементов в массиве.
Функция должна возвращать массив из указанного числа элементов типа T
. Все элементы массива должны быть равными null
.
Напишите тесты для функции:
- Проверьте, что она корректно создаёт массивы для различных типов (`number`, string
, `boolean`).
- Проверьте, что длина массива соответствует указанному числу length
.
function createArray(length: any): any {
// Реализуйте функцию
}
// Пример теста
const numberArray = createArray(3); // Ожидается: [null, null, null]
const stringArray = createArray(2); // Ожидается: [null, null]
Задание 2
Создайте дженерик
Box<T>
для упаковки значений. Функция должна принимать значение типа T
и возвращать объект с этим значением в свойстве value
.Напишите функцию
getBoxValue(box)
для извлечения значения из упакованного объекта. Функция должна:- Возвращать значение из объекта,
- Выбрасывать ошибку, если тип
T
не соответствует ожидаемому.Например, если тип в коробке — это строка, функция должна извлечь строку, но выбросить ошибку, если тип окажется другим.
type Box = {
// Реализуйте дженерик
};
function getBoxValue(box: any): any {
// Реализуйте функцию
}
// Пример теста
const stringBox = { value: 'Hello' };
const extractedValue = getBoxValue(stringBox); // Ожидается: 'Hello'
Задание 3
Используйте дженерики для создания функции
mergeArrays<T>(arr1, arr2)
, которая сливает два массива в один.Функция должна принимать два массива типа
T[]
и возвращать новый массив, который содержит все элементы из обоих массивов.Напишите тесты для функции:
- Проверьте, что она корректно сливает массивы для различных типов (`number`, `string`).
- Проверьте, что она сохраняет правильный тип массива.
function mergeArrays(arr1: any, arr2: any): any {
// Реализуйте функцию
}
// Пример теста
const mergedNumbers = mergeArrays([1, 2], [3, 4]); // Ожидается: [1, 2, 3, 4]
const mergedStrings = mergeArrays(['a', 'b'], ['c', 'd']); // Ожидается: ['a', 'b', 'c', 'd']
#typescript #frontend #generics #дженерики