Основы TypeScript: Создание типов, перечислений и интерфейсов

Источник: «TypeScript Basics (5/10): Creating Types, Enums and Interfaces»
Добро пожаловать в пятую часть нашей серии статей о TypeScript! В этой части мы переключим наше внимание на создание пользовательских типов, перечислений и интерфейсов. Эти мощные конструкции позволяют создавать выразительные и чётко определённые структуры кода.

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

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

Создание типов

Типы позволяют задать пользовательские имена для существующих типов или создать объединение типов.

type Status = "success" | "error";

function processStatus(status: Status): void {
console.log(`Processing status: ${status}`);
}

let myStatus: Status = "success";

processStatus(myStatus); // Output: Processing status: success

В этом примере Status — это пользовательский тип, представляющий либо success, либо error.

Перечисления

Перечисления — это способ дать более дружелюбные имена наборам числовых значений.

enum Direction {
Up = "UP",
Down = "DOWN",
Left = "LEFT",
Right = "RIGHT",
}

let playerDirection: Direction = Direction.Up;

console.log(`Player is moving ${playerDirection}`); // Output: Player is moving UP

Здесь Direction — это перечисление со строковыми значениями, присвоенными каждому члену.

Интерфейсы

Интерфейсы определяют контракты для форм объектов, позволяя вам указать структуру, которой должны придерживаться объекты.

interface Person {
firstName: string;
lastName: string;
age: number;
sayHello: () => void;
}

const john: Person = {
firstName: "John",
lastName: "Doe",
age: 30,
sayHello: () => {
console.log(`Hello, I'm ${john.firstName} ${john.lastName}.`);
},
};

john.sayHello(); // Output: Hello, I'm John Doe.

В этом примере Person — это интерфейс, определяющий структуру объекта с полями firstName, lastName, age и методом sayHello.

Комбинирование типов, перечислений и интерфейсов

type Car = {
make: string;
model: string;
year: number;
};

enum FuelType {
Gasoline = "Gasoline",
Electric = "Electric",
Hybrid = "Hybrid",
}

interface ElectricCar extends Car {
batteryCapacity: number;
fuelType: FuelType.Electric;
}

const myElectricCar: ElectricCar = {
make: "Tesla",
model: "Model 3",
year: 2022,
batteryCapacity: 75,
fuelType: FuelType.Electric,
};

Здесь у нас есть тип Car, перечисление FuelType и интерфейс ElectricCar, расширяющий тип Car. myElectricCar — это объект, соответствующий интерфейсу ElectricCar.

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

Основы 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: ООП практика, классы и наследование

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

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

Семь советов по добавлению второго сервера приложения

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

Совет по безопасности: Безопасна ли функция strip_tags()