ფუნქციები-კოლბეკები TypeScript-ში

კოლბეკების ფუნქციებისთვის ასევე შეიძლება პარამეტრების ტიპის და დაბრუნებული მნიშვნელობის ტიპის მითითება. იხილეთ მაგალითი:

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

გამოვიძახოთ ჩვენი ფუნქცია ერთი კოლბეკით:

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

ახლა კი სხვა კოლბეკით:

typescriptmake(3, function(num: number): number {
  return num ** 3;
});
Задание 1

გითხარით, რა იქნება შემდეგი კოდის შესრულების შედეგი:

typescripttype 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);
Задание 2

იპოვეთ და გამასწორეთ შეცდომები, რომლებიც დაუშვა შემდეგ კოდში:

typescripttype 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);