# Функции-коллбэки в TypeScript

Для функций коллбэков также можно указывать тип параметров и тип возвращаемого значения. Смотрите пример:

`function make(num: number, func: (num: number) => number): number { return func(num); }`

Давайте вызовем нашу функцию с одним коллбэком:

`make(3, function(num: number): number { return num ** 2; });`

А теперь с другим коллбэком:

`make(3, function(num: number): number { return num ** 3; });`

Расскажите, каким будет результат выполнения следующего кода:

`type Func = (num: number) => number; function make(arr: number[], func: Func): number[] { return arr.map(function(elem: number) { return func(elem); }); } let res: number[] = make([1, 2, 3], function(num: number): number { return num ** 2; }); console.log(res);`

Найдите и исправьте ошибки, допущенные в следующем коде:

`type Func = (num: number) => number; function make(arr: number, func: Func): number { let sum = 0; for (let elem of arr) { sum += func(elem); } return sum; } let res: number[] = make([1, 2, 3], function(num): string { return num ** 2; }); console.log(res);`
← →
↑