Функции TypeScript похожи на функции JavaScript, но обладают некоторыми дополнительными возможностями.
Основное различие между JavaScript и TypeScript заключается в том, что в TypeScript используется система статической типизации. Это означает, что типы переменных определяются в момент их определения. В TypeScript функции также могут быть использованы для определения их типов.
Поэтому при определении функций в TypeScript применяются следующие два соображения.
В JavaScript функции обычно определяются следующим образом
function sum(a, b) { return a + b; }
При этом не указывается, какие аргументы будет принимать функция и какое значение она будет возвращать.
В TypeScript функции обычно определяются путем указания их типа
function sum(a: number, b: number): number { return a + b; }
Мы можем проанализировать это определение более систематически следующим образом.
function functionName(parameter1: type, parameter2: type): returnType { // }
Здесь functionName - это имя функции. parameter1, parameter2 и т.д. - это имена параметров, передаваемых функции, и каждый из них имеет заданный тип. returnType задает тип значения, которое вернет функция.
Если мы хотим определить функцию без типа возвращаемого значения
function sayHello(name: string) { console.info(`Hello ${name}!`); } sayHello("Alice");
Как показано в этом коде, тип возвращаемого значения не указывается.
1- Функция, которая выдает сумму двух чисел
function calculateSum(a: number, b: number): number { return a + b; } const result = calculateSum(2, 3); console.info(result); // 5
2- Функция, преобразующая первую букву слова в верхний регистр
function capitalize(str: string): string { return str.charAt(0).toUpperCase() + str.slice(1); } console.info(capitalize("hello")); // "Hello"
3.Функция, которая находит сумму чисел в массиве
function sumArray(numbers: number[]): number { let sum = 0; for (let number of numbers) { sum += number; } return sum; } console.info(sumArray([1, 2, 3, 4, 5])); // 15
Функция принимает массив чисел, называемый параметром numbers, и возвращает значение типа number. В определении функции тип параметра numbers указан как number[], что означает, что этот параметр принимает только массивы чисел.
Внутри определения функции определяется переменная sum, которая инициализируется в 0. Затем, используя цикл for, каждое число в массиве принимается за числовую переменную и добавляется к переменной sum.
4.Функция для проверки четности числа
function isEven(num: number): boolean { return num % 2 === 0; } console.info(isEven(4)); // true console.info(isEven(5)); // false
function greet(name: string="World") { console.info(`Hello, ${name}!`); } greet(); // Hello, World! greet("John"); // Hello, John!
2. TypeScript также поддерживает синтаксис стрелочной функции при использовании функций. Этот синтаксис позволяет писать более короткий и читабельный код.
const multiply = (x: number, y: number): number => x * y; console.info(multiply(2, 3)); // 6
3. Возвращаемые значения функций всегда должны быть указаны. Таким образом можно получить информацию о возвращаемом значении функции и избежать ошибок.
4. необязательные параметры в параметрах должны быть определены после обязательных параметров. В противном случае будет получена ошибка. Необязательные параметры определяются с помощью знака (?) после имени переменной, и ошибка не будет получена, если они не используются.
function printName(firstName: string, lastName?: string, middleName: string) { console.info(firstName + " " + middleName + " " + lastName); } printName("John", "Doe"); // HATA: Zorunlu parametre olan middleName sonrasında opsiyonel parametreler tanımlanmalı
Правильное использование
function printName(firstName: string, middleName: string, lastName?: string) { console.info(firstName + " " + middleName + " " + lastName); }
Для лучшего понимания функций в TypeScript вы можете ознакомиться со следующими ресурсами.