Перевод на русский язык (ru)
TypeScript - Анонимные функции: руковод для начинающих
Здравствуйте, будущая звезда программирования! Сегодня мы окунемся в захватывающий мир TypeScript и рассмотрим концепцию, которая может показаться немного загадочной в начале: анонимные функции. Не волнуйтесь, если это звучит как кодовое имя секретного агента – к концу этого учебника вы будете использовать эти функции как профессионал!
Что такое匿名ные функции?
Прежде чем мы углубимся, давайте разберем, что мы подразумеваем под "анонимными функциями". В мире программирования мы часто даем имена нашим функциям, например, "calculateTotal" или "sendEmail". Но иногда мы создаем функции, которым не нужен名字 – они resemble маскированные герои программирования. Эти безымянные чудеса мы называем匿名ными функциями.
Представьте, что вы на маскарадном балу. Все носят роскошные маски, и вы не видите их лиц или не знаете их имен. Но они все равно могут танцевать, разговаривать и веселиться. Это sorta как匿名ные функции в нашем коде – они выполняют задачи, не нуждаясь в formal представлении!
Теперь давайте посмотрим на различные способы создания этих инкогнито функций в TypeScript.
Определение анонимных функций с использованием ключевого слова 'function'
Первый способ создания анонимной функции – это использование доброго старого ключевого слова 'function'. Вот как это выглядит:
let greet = function(name: string) {
console.log("Hello, " + name + "!");
};
greet("Alice"); // Вывод: Hello, Alice!
В этом примере мы создаем функцию, которая здоровается с кем-то. Давайте разберем это:
- Мы начинаем с
let greet =
. Это мы создаем переменную 'greet'. - После знака равенства у нас
function(name: string) { ... }
. Это наша анонимная функция. - Внутри фигурных скобок
{ }
у нас тело функции – то, что функция на самом деле делает. - Затем мы можем использовать эту функцию, вызвав
greet("Alice")
.
Это как если бы мы создали友好ного робота, который может здороваться с кем угодно, и дали роботу кодовое имя 'greet'!
Определение анонимных функций с использованием синтаксиса arrow функции
Теперь давайте рассмотрим более современный и краткий способ записи匿名ных функций – синтаксис arrow функции. Это как спортивный автомобиль в мире функций: гладкий, быстрый и красивый!
let add = (a: number, b: number): number => {
return a + b;
};
console.log(add(5, 3)); // Вывод: 8
Вот что происходит:
- Мы создаем переменную 'add'.
- Часть
(a: number, b: number)
определяет параметры, которые принимает наша функция. -
: number
после скобок указывает, что наша функция будет возвращать число. -
=>
делает эту функцию箭очной функцией (она sorta похожа на стрелку, правда?). - Внутри
{ }
у нас тело функции.
Мы можем сделать это еще короче для простых функций:
let multiply = (a: number, b: number): number => a * b;
console.log(multiply(4, 6)); // Вывод: 24
В этом случае мы удалили { }
и ключевые слова return
. Это как если бы наша функция говорила: "Я так проста, мне не нужны все эти лишние символы!"
Использование匿名ных функций в качестве callback функций
Теперь, где匿名ные функции действительно сияют – это в качестве callback функций. Callback функция – это функция, которую мы передаем другой функции в качестве аргумента. Это как сказать другу: "Эй, когда ты закончишь свою задачу, сделай это для меня."
Давайте рассмотрим пример с использованием функции setTimeout
:
setTimeout(() => {
console.log("Это сообщение появится через 2 секунды!");
}, 2000);
В этом коде:
-
setTimeout
– это функция, которая ждет указанное количество времени перед выполнением某种 действия. - Первый аргумент – это наша анонимная функция, записанная в виде箭очной функции.
- Второй аргумент (2000) – это количество миллисекунд, которое нужно подождать (2 секунды).
Это как если бы мы установили таймер и сказали ему: "Когда ты сработаешь, 显示 это сообщение!"
Вот еще один пример с использованием методов массива:
let numbers = [1, 2, 3, 4, 5];
let doubledNumbers = numbers.map((num) => num * 2);
console.log(doubledNumbers); // Вывод: [2, 4, 6, 8, 10]
В этом случае:
- У нас есть массив чисел.
- Мы используем функцию
map
, которая применяет функцию к каждому элементу массива. - Наша анонимная функция
(num) => num * 2
удваивает каждое число. - Результатом является новый массив с удвоенными числами.
Это как если бы мы создали машину, которая берет каждое число, удваивает его и puts его в новую коробку!
Заключение
И вот мы и разобрались,folks! Мы вскрыли тайну匿名ных функций в TypeScript. Помните, эти функции resemble полезные крошечные эльфы в вашем коде – они выполняют свою работу, не needing formal бейджика.
Вот краткое резюме методов, которые мы изучили, представленных в удобной таблице:
Метод | Синтаксис | Пример |
---|---|---|
Ключевое слово Function | let funcName = function(params) { ... } |
let greet = function(name: string) { console.log("Hello, " + name); } |
Arrow Function (многострочный) | let funcName = (params) => { ... } |
let add = (a: number, b: number) => { return a + b; } |
Arrow Function (однолинейный) | let funcName = (params) => expression |
let multiply = (a: number, b: number) => a * b; |
В качестве Callback | someFunction(() => { ... }) |
setTimeout(() => { console.log("Время истекло!"); }, 1000); |
Практикуйтесь в использовании этих различных методов, и вскоре вы будете создавать匿名ные функции как coding ninja! Помните, в программировании, как и в жизни, иногда самые могущественные силы работают за кулисами. Счастливого кодирования!
Credits: Image by storyset