Functions
TypeScript має додаткові можливості по роботі з функціями. Зокрема, тепер ми можемо визначити тип переданих аргументи і тип значення, що повертає функція.
function add(a: number, b: number): number {
return a + b;
}
let sum = add(1, 2);
console.log(sum);
Якщо функція нічого не повертає, то вказується тип void.
function sum(a: number, b: number): void {
console.log(a + b);
}
sum(10, 20);
Не обов'язкові аргументи.
В TypeScript, при виклику функції, в ню має передаватися рівно стільки значень, скільки в ній визначено аргументи.
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.
Деякі аргументи можна оголосити як необов'язкові.
Необов'язкові аргументи повинні бути позначені знаком запитання ?
. Причому необов'язкові аргументи повинні йти після обов'язкових.
function getFullName(firstName: string, lastName?: string) {
if (lastName) {
return firstName + ' ' + lastName;
} else {
return firstName;
}
}
let nameOne = getFullName('Tom', 'Bob');
let nameTwo = getFullName('Tom');
Також, аргументи функції, що мають значення за замовчуванням, автоматично є не обовязковими.
function sum(a: number, b = 20): void {
console.log(a + b);
}
sum(10);
Якщо ж необхідно, щоб функція приймала набір однотипних аргументів, то використовується знак три крапки ...
, після якого йде масив.
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?