Основы TypeScript: Типизация функций и сигнатур

Источник: «TypeScript Basics (7/10): Typing Functions and Signatures»
Добро пожаловать в седьмую часть цикла статей о TypeScript! В этой части мы сосредоточимся на типизации функций и сигнатур, обеспечивающих функциональность и безопасность типов вашего кода.

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

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

Вы можете явно указать типы параметров функции и возвращаемого типа с помощью аннотаций типов.

// Функция с аннотацией параметров и возвращаемого типа
function add(x: number, y: number): number {
return x + y;
}

let result: number = add(3, 5);
console.log(result); // Результат: 8

В этом примере функция add принимает два параметра типа number и возвращает значение типа number.

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

Вы можете сделать параметры необязательными, добавив символ ? после их имени, а также указать значения по умолчанию, используя синтаксис =.

// Функция с необязательными и параметрами по умолчанию
function greet(name: string, greeting?: string): string {
if (greeting) {
return `${greeting}, ${name}!`;
} else {
return `Hello, ${name}!`;
}
}

console.log(greet("John")); // Результат: Hello, John!
console.log(greet("John", "Hi")); // Результат: Hi, John!

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

Типы функций и присваивание переменных

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

// Определение типа функции
type MathOperation = (a: number, b: number) => number;

// Function assigned to a variable with the defined type
const multiply: MathOperation = (x, y) => x * y;

let multiplicationResult: number = multiply(4, 6);

console.log(multiplicationResult); // Результат: 24

Здесь MathOperation — это тип, представляющий функцию, которая принимает два параметра типа number и возвращает значение типа number.

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

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

// Перегрузки функции
function combine(a: string, b: string): string;
function combine(a: number, b: number): number;
function combine(a: any, b: any): any {
return a + b;
}

let stringResult: string = combine("Hello, ", "world!");
let numberResult: number = combine(3, 5);

console.log(stringResult); // Результат: Hello, world!
console.log(numberResult); // Результат: 8

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

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

Основы TypeScript

  1. Основы TypeScript: компилятор TypeScript (tsc) и tsconfig.json
  2. Основы TypeScript: JavaScript в сравнении с TypeScript
  3. Основы TypeScript: Примитивы и базовые типы
  4. Основы TypeScript: Неявные и Явные типы, Утверждения типов
  5. Основы TypeScript: Создание типов, перечислений и интерфейсов
  6. Основы TypeScript: Объединение, Литеральные и Размеченные типы
  7. Основы TypeScript: Типизация функций и сигнатур
  8. Основы TypeScript: Any, Void, Never, Null, Строгие проверки Null
  9. Основы TypeScript: ООП практика, классы и наследование

Дополнительные материалы

Предыдущая Статья

Стратегии кэширования в Laravel

Следующая Статья

Неортодоксальный Eloquent II