Псевдонимы типов и интерфейсы
Сравнивайте и используйте псевдонимы типов и интерфейсы
«Псевдонимы типов и интерфейсы» — бесплатный урок TypeScript Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения TypeScript Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс TypeScript Academy содержит 4 уроков всего.
Псевдонимы типов и интерфейсы
Псевдонимы типов и интерфейсы
Добро пожаловать на следующий урок! На этом уроке вы узнаете о псевдонимах типов и интерфейсах в TypeScript, включая их различия, сходства и случаи применения. Давайте начнём!

Что такое псевдонимы типов?
Что такое псевдонимы типов?
Псевдоним типа позволяет определить собственное имя для типа. Он может представлять примитивные типы, объекты или даже сигнатуры функций.
Пример:
Задание: Создайте псевдоним типа для объекта, представляющего книгу, и используйте его для определения переменной.
type Point = {
x: number;
y: number;
};
let point: Point = { x: 10, y: 20 };
console.log(point);
// Output: { x: 10, y: 20 }
Что такое интерфейсы?
Что такое интерфейсы?
Интерфейс определяет структуру объекта, включая его свойства и методы. Его часто используют, чтобы обеспечить единообразие и безопасность типов объектов.
Пример:
Задание: Создайте интерфейс для профиля пользователя и используйте его для определения переменной.
interface Point {
x: number;
y: number;
}
let point: Point = { x: 5, y: 15 };
console.log(point);
// Output: { x: 5, y: 15 }
Псевдонимы типов и интерфейсы: сходства
Псевдонимы типов и интерфейсы: сходства
Псевдонимы типов и интерфейсы имеют некоторые общие возможности:
- Оба могут описывать структуру объекта.
- Оба можно использовать для задания типов функций.
- Оба поддерживают расширение других типов.
Пример: тип функции:
Задание: Определите псевдоним типа и интерфейс для функции и используйте их.
type Add = (a: number, b: number) => number;
interface Subtract {
(a: number, b: number): number;
}
let add: Add = (x, y) => x + y;
let subtract: Subtract = (x, y) => x - y;
console.log(add(5, 3));
// Output: 8
console.log(subtract(5, 3));
// Output: 2
Псевдонимы типов и интерфейсы: различия
Псевдонимы типов и интерфейсы: различия
Вот основные различия:
- Интерфейсы: могут объединяться (слияние объявлений).
- Псевдонимы типов: не могут объединяться.
- Псевдонимы типов: могут задавать типы объединения и пересечения.
- Интерфейсы: в основном предназначены для описания структуры объектов.
Пример: типы объединения с псевдонимами типов:
Задание: Используйте псевдоним типа, чтобы определить тип объединения, и присвойте переменной разные значения.
type StringOrNumber = string | number;
let value: StringOrNumber = "Hello";
value = 42;
// value = true;
// Error: Type 'true' is not assignable to type 'StringOrNumber'.
Расширение типов и интерфейсов
Расширение типов и интерфейсов
И псевдонимы типов, и интерфейсы могут расширять другие типы:
- Интерфейсы: используют ключевое слово
extends. - Псевдонимы типов: используют пересечения (
&).
Пример:
Задание: Расширьте псевдоним типа и интерфейс, чтобы создать новые типы.
interface Animal {
name: string;
}
interface Dog extends Animal {
breed: string;
}
type Bird = Animal & { canFly: boolean };
let myDog: Dog = { name: "Buddy", breed: "Golden Retriever" };
let myBird: Bird = { name: "Parrot", canFly: true };
console.log(myDog, myBird);
Слияние объявлений
Слияние объявлений
Интерфейсы поддерживают слияние объявлений: несколько объявлений интерфейса с одним и тем же именем объединяются в одно. Псевдонимы типов не поддерживают эту возможность.
Пример:
Задание: Создайте два объявления интерфейса с одним и тем же именем и проверьте слияние объявлений.
interface Person {
name: string;
}
interface Person {
age: number;
}
let person: Person = { name: "Alice", age: 30 };
console.log(person);
// Output: { name: "Alice", age: 30 }
Когда что использовать
Когда что использовать
Вот несколько рекомендаций:
- Используйте интерфейсы для определения структуры объектов и в тех случаях, когда требуется слияние объявлений.
- Используйте псевдонимы типов для объединений, пересечений или при определении типов функций.
Совет: Выбирайте вариант, который лучше всего подходит для вашей задачи, чтобы код оставался понятным и единообразным!
Отличная работа!
Отличная работа!
Поздравляем! Вы узнали о сходствах и различиях между псевдонимами типов и интерфейсами в TypeScript, а также о том, когда использовать каждый из них. В следующем уроке мы изучим продвинутые возможности TypeScript, например условные типы. Продолжим писать код!

Часто задаваемые вопросы
Урок «Псевдонимы типов и интерфейсы» бесплатный?
Да — полный текст урока «Псевдонимы типов и интерфейсы» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс TypeScript Academy, подпишись на CoddyKit PRO. Курс TypeScript Academy содержит 4 уроков всего.
Чему я научусь в уроке «Псевдонимы типов и интерфейсы»?
Сравнивайте и используйте псевдонимы типов и интерфейсы Ты практикуешь TypeScript Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать TypeScript Academy?
Предыдущий опыт не требуется. TypeScript Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.
Сколько времени занимает урок «Псевдонимы типов и интерфейсы»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке TypeScript Academy?
Да. Каждый урок TypeScript Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Обобщения
- Псевдонимы типов и интерфейсы
- Вспомогательные типы
- Защитники типов