Как использовать функции в TypeScript. Руководство для начинающих

Функции являются фундаментальным строительным блоком в TypeScript, как и в JavaScript. TypeScript расширяет функции JavaScript дополнительными возможностями, такими как аннотации типов, которые повышают ясность кода и предотвращают ошибки. Это руководство для начинающих покажет вам, как использовать функции в TypeScript.

Определение функций

В TypeScript можно определять функции так же, как в JavaScript, но с дополнительными аннотациями типов для указания типов параметров и возвращаемых значений.

Определение базовой функции

Вот как определяется простая функция в TypeScript:

function greet(name: string): string {
  return "Hello, " + name;
}

В этом примере name является параметром типа string, а функция возвращает значение типа string.

Параметры функции и типы возвращаемых данных

TypeScript позволяет указывать типы параметров функции и возвращаемых значений, помогая гарантировать правильное использование функции.

Функция с параметрами

Вот функция, которая принимает два параметра и возвращает их сумму:

function add(x: number, y: number): number {
  return x + y;
}

В этой функции и x, и y имеют тип number, и функция возвращает number.

Функции без возвращаемого значения

Не все функции должны возвращать значение. Функции без возвращаемого значения объявляются с возвращаемым типом void. Эти функции выполняют действия, но не производят результат.

Пример без возвращаемого значения

function logMessage(message: string): void {
  console.log(message);
}

В этом примере logMessage выводит message на консоль, но не возвращает никакого значения.

Необязательные параметры и параметры по умолчанию

TypeScript поддерживает необязательные и стандартные параметры, что позволяет создавать более гибкие функции.

Необязательные параметры

Необязательные параметры указываются путем добавления ? после имени параметра:

function greet(name: string, greeting?: string): string {
  if (greeting) {
    return greeting + ", " + name;
  }
  return "Hello, " + name;
}

В этом примере greeting — необязательный параметр, который можно опустить при вызове функции.

Параметры по умолчанию

Параметры по умолчанию имеют значение по умолчанию, если значение не указано:

function greet(name: string, greeting: string = "Hello"): string {
  return greeting + ", " + name;
}

Если приветствие не указано, по умолчанию используется "Hello".

Перегрузка функций

TypeScript поддерживает перегрузку функций, что позволяет определять несколько сигнатур функций для одного и того же имени функции:

function greet(name: string): string;
function greet(name: string, age: number): string;
function greet(name: string, age?: number): string {
  if (age !== undefined) {
    return `Hello, ${name}. You are ${age} years old.`;
  }
  return `Hello, ${name}.`;
}

В этом примере greet можно вызвать с одним или двумя параметрами.

Функции стрелок

Стрелочные функции предоставляют более короткий синтаксис для записи функций и не имеют собственного контекста this:

const add = (x: number, y: number): number => x + y;

В этом примере показано, как определить стрелочную функцию, которая складывает два числа.

Заключение

Функции в TypeScript — это мощный способ инкапсуляции и повторного использования кода. Используя аннотации типов, необязательные и стандартные параметры, перегрузку функций и стрелочные функции, вы можете писать более надежный и поддерживаемый код. Понимание этих основ поможет вам в полной мере использовать возможности TypeScript в своих проектах.