Основы 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
- Основы TypeScript: компилятор TypeScript (
tsc
) иtsconfig.json
- Основы TypeScript: JavaScript в сравнении с TypeScript
- Основы TypeScript: Примитивы и базовые типы
- Основы TypeScript: Неявные и Явные типы, Утверждения типов
- Основы TypeScript: Создание типов, перечислений и интерфейсов
- Основы TypeScript: Объединение, Литеральные и Размеченные типы
- Основы TypeScript: Типизация функций и сигнатур
- Основы TypeScript:
Any
,Void
,Never
,Null
, Строгие проверки Null - Основы TypeScript: ООП практика, классы и наследование