Типизация стрелочных функций

Тренажер по TypeScript для пользователей с начальным уровнем подготовки.

Тренажер по TypeScript

Стрелочные функции (Arrow Functions) — это лаконичный способ записи функций, ставший стандартом в современной разработке. В TypeScript их типизация имеет свои особенности. Вы можете типизировать аргументы и возвращаемое значение прямо в сигнатуре: (a: number): string => ....

Кроме того, часто удобно создавать отдельный тип для функции, чтобы использовать его повторно. Это делается через Type Alias: type MathFunc = (x: number, y: number) => number. Такой подход делает код чище и читаемее, особенно при передаче функций в качестве колбэков.

В этом уроке мы попрактикуемся в написании типизированных стрелочных функций. Задачи охватывают как инлайн-типизацию, так и создание отдельных сигнатур типов. Вы научитесь правильно расставлять скобки и типы возвращаемых значений.

Список тем

1. Синтаксис стрелки

id: 40656_ts_arrow_replace_01

В этом задании вам нужно преобразовать обычную функцию в стрелочную, используя синтаксис TypeScript. Обратите внимание на места пропусков: в одном нужно указать тип возвращаемого значения, в другом — символ стрелки. Учтите, что функция принимает два числа и возвращает их сумму, поэтому тип возвращаемого значения должен соответствовать операции сложения. Заполните пропуски так, чтобы код был синтаксически корректным и компилировался без ошибок.

Заполните пропуски
const add = (a: number, b: number) input2S input1S {
    return a + b;
};
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

2. Сборка стрелочной функции

id: 40656_ts_arrow_build_02

Из предложенных строк соберите корректную стрелочную функцию на TypeScript, которая принимает два числа и возвращает их произведение. Функция должна быть типизирована: параметры и возвращаемое значение имеют тип number. Лишние строки в решение включать не нужно. Убедитесь, что функция объявлена как константа и имеет явное указание типа возвращаемого значения.

Перетяните в правильном порядке строки из одного блока в другой
const multiply =
(x: number, y: number)
: number =>
{
    return x * y;
}
const multiply = (x, y) => x * y;
const multiply: number = (x: number, y: number) => { return x * y; };
return x * y;
console.log('Hello');
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

3. Типизация аргументов

id: 40656_ts_arrow_select_fill_03

В этом задании вам нужно дополнить код стрелочной функции умножения, выбрав правильные типы для аргументов и возвращаемого значения из предложенного списка. Обратите внимание, что операция умножения в TypeScript определена только для числовых операндов, и результат также должен быть числом. Задание поможет закрепить навыки явной типизации параметров и возвращаемого значения стрелочных функций.

Нужно правильно расставить в пропуски предложенные варианты
const multiply = (a: input1S, b: input2S): input3S => a * b;
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

4. Скобки параметров

id: 40656_ts_arrow_error_04

В этом фрагменте кода TypeScript допущена синтаксическая ошибка в объявлении стрелочной функции. При указании типа параметра в стрелочной функции необходимо заключать параметр в круглые скобки. Исправьте ошибку, чтобы код стал рабочим и корректно типизированным.

Найдите ошибку и исправьте
const greet = name: string => `Hello, ${name}`;
console.log(greet('Alice'));
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

5. Структура типа функции

id: 40656_ts_arrow_highlight_05

Разметьте структуру типа функции в TypeScript. Укажите для каждого выделенного фрагмента, является ли он списком аргументов (включая скобки и типы параметров), стрелкой, разделяющей параметры и возвращаемое значение, или типом возврата функции. Это упражнение поможет закрепить понимание синтаксиса типизации стрелочных функций.

Кликните по каждому выделенному фрагменту и выберите для него подходящий тип из списка под текстом.
type MyFunc = {{(a: string)~|~t1}} {{=>~|~t2}} {{void~|~t3}};
Стрелка
Список аргументов
Тип возврата
Сообщения
Проверить
Показать подсказку

6. Выполнение колбэка

id: 40656_ts_arrow_analyze_06

Проанализируйте TypeScript-код сверху и восстановите последовательность логических шагов выполнения программы. Шаги снизу перемешаны — расставьте их в правильном порядке, чтобы отразить, как программа объявляет стрелочную функцию, передаёт её в другую функцию, вызывает внутри и возвращает результат.

// Объявление стрелочной функции
const square = (x: number): number => x * x;

// Функция, принимающая колбэк
function applyOperation(value: number, operation: (num: number) => number): number {
    return operation(value);
}

// Входные данные
const inputValue = 4;
const result = applyOperation(inputValue, square);
console.log(result);
Расположите элементы в логичном порядке
Объявление функции applyOperation, принимающей число и колбэк (функцию operation)
Внутри applyOperation происходит вызов переданного колбэка square с аргументом inputValue
Вызов функции applyOperation с аргументами inputValue и square
Вывод результата в консоль
Задание входного числа inputValue равного 4
Возврат результата из applyOperation в переменную result
Объявление стрелочной функции square, которая принимает число и возвращает его квадрат
Сообщения
Проверить
Показать подсказку

7. Короткая запись возврата

id: 40656_ts_arrow_give_result_07

В данном задании представлен фрагмент кода на TypeScript, использующий стрелочные функции с неявным возвратом (без фигурных скобок). Проанализируйте код и определите, какое значение будет выведено в консоль. Введите это значение в поле ответа в виде одного числа.

Что должно получиться?
const add = (a: number, b: number) => a + b;
const subtract = (a: number, b: number) => a - b;
const result = add(10, subtract(8, 5));
console.log(result);
Сообщения
Проверить
Показать подсказку

TypeScript: компиляция и запуск

id: 40656_compiler

Практикуем типизацию стрелочных функций в TypeScript. Здесь вы увидите, как корректно описывать типы для параметров и возвращаемого значения. Экспериментируйте: меняйте типы параметров, возвращаемых значений, пробуйте удалить аннотации или добавить новые функции — и наблюдайте, как компилятор помогает находить ошибки. Попробуйте, например, передать строку вместо числа или изменить логику вычисления — это лучший способ понять систему типов.

TS
Запустить тренажёр (TypeScript)
НайтиКурс.Ру