Функции-коллбэки в 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);