0Pricing
TypeScript Academy · Урок

Псевдонимы типов и интерфейсы

Сравнивайте и используйте псевдонимы типов и интерфейсы

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

Псевдонимы типов и интерфейсы

Псевдонимы типов и интерфейсы

Добро пожаловать на следующий урок! На этом уроке вы узнаете о псевдонимах типов и интерфейсах в TypeScript, включая их различия, сходства и случаи применения. Давайте начнём!

Псевдонимы типов и интерфейсы — иллюстрация 1

Что такое псевдонимы типов?

Что такое псевдонимы типов?

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

Пример:

Задание: Создайте псевдоним типа для объекта, представляющего книгу, и используйте его для определения переменной.

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, например условные типы. Продолжим писать код!

Псевдонимы типов и интерфейсы — иллюстрация 10

Часто задаваемые вопросы

Урок «Псевдонимы типов и интерфейсы» бесплатный?

Да — полный текст урока «Псевдонимы типов и интерфейсы» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 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 — локальная установка не требуется.

Все уроки этого курса

  1. Обобщения
  2. Псевдонимы типов и интерфейсы
  3. Вспомогательные типы
  4. Защитники типов
← Назад к TypeScript Academy