Тип Function в TypeScript — это встроенный тип, который описывает любую функцию. Он полезен, когда нужно принять или сохранить функцию, но конкретная сигнатура неважна.
Синтаксис объявления:
let callback: Function;function execute(fn: Function) { fn(); }
Важно: тип Function не проверяет аргументы и возвращаемое значение, поэтому для строгой типизации лучше использовать конкретные сигнатуры вида (a: number) => string. Однако в некоторых случаях общий тип Function упрощает код.
На этом интерактивном тренажёре ты отработаешь практическое использование типа Function — от простого объявления до передачи функций как аргументов.
- Модуль 1: Введение в TypeScript
- Модуль 2: Примитивные типы
- Модуль 3: Специальные типы
- Модуль 4: Массивы
- Модуль 5: Кортежи (Tuples)
- Модуль 6: Объекты
- Модуль 7: Функции
- Модуль 8: Union типы
- Модуль 9: Литеральные типы
- Модуль 10: Type Aliases
- Модуль 11: Интерфейсы
- Модуль 12: Type Guards и Narrowing
- Модуль 13: Enums
- Модуль 14: Классы
- Модуль 15: Generics — основы
- Модуль 16: Generics — ограничения
- Модуль 17: Utility Types — базовые
- Модуль 18: Utility Types — работа с Union
- Модуль 19: Utility Types — функции
- Модуль 20: Type Assertions
- Модуль 21: Keyof и Typeof операторы
- Модуль 22: Mapped Types
- Модуль 23: Conditional Types
- Модуль 24: Discriminated Unions
- Модуль 25: Модули и типы
- Модуль 26: Declaration Files
- Модуль 27: Типизация асинхронного кода
- Модуль 28: Практические паттерны
1. Объявление переменной с типом Function
Дополните фрагмент кода на TypeScript, объявив переменную с типом Function и присвоив ей стрелочную функцию. Заполните пропуски ключевым словом типа Function и оператором присваивания, чтобы код успешно компилировался и мог выполнить функцию, выводящую приветствие в консоль.
let greetFunc: input1S;
greetFunc input2S () => {
console.log("Hello, TypeScript!");
};2. Function как параметр
В данном фрагменте кода определите типы для параметра callback и возвращаемого значения функции process. Выберите подходящие типы из выпадающего списка так, чтобы код был корректным с точки зрения TypeScript. Обратите внимание, что callback является функцией, которая вызывается без аргументов, и её тип должен соответствовать возможностям вызова и возврата значения.
function process(callback: input1S): input2S {
return callback();
}3. Исправь ошибку в типе
В данном фрагменте кода TypeScript допущена одна ошибка, связанная с использованием типа для функции. Найдите строку с ошибкой и исправьте её, чтобы код стал корректным с точки зрения системы типов TypeScript. Обратите внимание на правильное написание встроенных типов.
let greet: Funtion = (name: string): void => { console.log(`Hello, ${name}!`);}; greet('TypeScript');4. Собери функцию с типом Function
Из предложенных строк соберите корректную TypeScript-программу, которая объявляет функцию, принимающую параметр типа Function, вызывает переданную функцию и возвращает её результат. Программа должна вывести результат вызова этой функции с конкретным аргументом. Одна из строк лишняя и в решение входить не должна.
function callFunction(fn: Function): any { return fn();}const result = callFunction(() => "Hello, TypeScript!");console.log(result);const x: number = 42;5. Что выведет код?
Проанализируйте приведённый ниже код на TypeScript. Функция executeFunc принимает параметр типа Function и вызывает его. Внимательно изучите, какая именно функция передаётся в качестве аргумента, и определите, что будет выведено в консоль при выполнении этого кода. Выберите один правильный вариант из предложенных.
function executeFunc(fn: Function): void {
fn();
}
let message: string = "Hello";
message = "Goodbye";
executeFunc(() => console.log(message));6. Типы функций и их описания
В левой колонке приведены типы функций в TypeScript, а в правой — их краткие описания. Сопоставьте каждый тип функции с соответствующим описанием. Обратите внимание на сигнатуры типов: количество параметров, их типы и тип возвращаемого значения.
Function() => void(x: number) => number() => string(a: string, b: boolean) => void7. Найди переменные с типом Function
Перед вами фрагмент кода на TypeScript. Внимательно изучите объявления переменных. Ваша задача — отметить все переменные, тип которых явно указан как Function или является функциональным (например, стрелочная функция). Не отмечайте переменные с типами string, number, boolean или другими не функциональными типами. Всего в коде есть несколько переменных, но только некоторые из них имеют тип Function.
// Пример кода с объявлениями переменных разных типов
let {{userName: string~|~t1}} = "Alice";
const {{userAge: number~|~t2}} = 30;
let {{isActive: boolean~|~t3}} = true;
let {{logger: Function~|~t4}} = (message: string) => console.log(message);
const {{multiplier: (x: number, y: number) => number~|~t5}} = (x, y) => x * y;
var {{dataProcessor: Function~|~t6}} = function(data: string) { return data.toUpperCase(); };
let {{counter: number~|~t7}} = 0;
const {{greet~|~t8}} = (name: string) => `Hello, ${name}`;
let {{formatDate: Function~|~t9}} = (date: Date) => date.toLocaleDateString();
var {{settings: object~|~t10}} = { theme: "dark" };8. Напиши результат вызова
Проанализируйте приведённый фрагмент кода на TypeScript. В нём объявляется переменная с типом Function, которой присваивается функция, возвращающая результат арифметического выражения. Затем эта переменная вызывается, и результат выводится в консоль. Определите, какое число будет выведено в консоль, и введите его в поле ответа. Ответ должен быть представлен в виде одного целого числа без дополнительных символов.
let operation: Function;
operation = () => {
return 15 + 25;
};
let result = operation();
console.log(result);