Functions

TypeScript має додаткові можливості по роботі з функціями. Зокрема, тепер ми можемо визначити тип переданих аргументи і тип значення, що повертає функція.

main.ts
function add(a: number, b: number): number {
  return a + b;
}

let sum = add(1, 2);

console.log(sum);

Якщо функція нічого не повертає, то вказується тип void.

main.ts
function sum(a: number, b: number): void {
  console.log(a + b);
}

sum(10, 20);

Не обов'язкові аргументи.

В TypeScript, при виклику функції, в ню має передаватися рівно стільки значень, скільки в ній визначено аргументи.

main.ts
function getName(firstName: string, lastName: string): string {
  return firstName + ' ' + lastName;
}
  
let name1 = getName('Tom', 'Bob');
let name2 = getName('Tom', 'Bob', 'Alice'); // ERROR: Expected 2 arguments, but got 3.

let name3 = getName('Tom'); // ERROR: Expected 2 arguments, but got 1.

Деякі аргументи можна оголосити як необов'язкові.

Необов'язкові аргументи повинні бути позначені знаком запитання ?. Причому необов'язкові аргументи повинні йти після обов'язкових.

main.ts
function getFullName(firstName: string, lastName?: string) {
  if (lastName) {
    return firstName + ' ' + lastName;
  } else {
    return firstName;
  }
}

let nameOne = getFullName('Tom', 'Bob');
let nameTwo = getFullName('Tom');

Також, аргументи функції, що мають значення за замовчуванням, автоматично є не обовязковими.

main.ts
function sum(a: number, b = 20): void {
  console.log(a + b);
}

sum(10);

Якщо ж необхідно, щоб функція приймала набір однотипних аргументів, то використовується знак три крапки ..., після якого йде масив.

main.ts
function addNumbers(firstNumber: number, ...numberArray: number[]): number {
  let result = firstNumber;

  for (let i = 0; i < numberArray.length; i++) {
    result +=numberArray[i];
  }

  return result;
}

let num1 = addNumbers(3, 7, 8);
console.log(num1); // 18

let num2 = addNumbers(3, 7, 8, 9, 4);
console.log(num2); // 31

Last updated

Was this helpful?