Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про TypeScript: typescript, type, interface

В чем разница между интерфейсом (interface) и типом (type) в TypeScript?

Этот вопрос проверяет понимание различий между двумя основными способами объявления типов данных в TypeScript — через интерфейсы и типы. Он помогает понять, когда и как использовать каждый из этих механизмов.

Короткий ответ

Интерфейсы и типы в TypeScript очень похожи, оба используются для описания структуры объектов, но у них есть различия. Интерфейсы лучше подходят для описания объектов и классов и могут расширяться (унаследовать) друг от друга. Типы более универсальны — они могут объединять примитивные типы, объединять (Union) или пересекать (Intersection) другие типы, но не могут быть расширены, как интерфейсы.

Длинный ответ

Интерфейс (interface) и тип (type) — это два способа объявить структуру данных в TypeScript, и в большинстве случаев они могут использоваться взаимозаменяемо. Однако у них есть несколько ключевых различий.

Интерфейсы создаются специально для описания объектов и классов. С их помощью можно определять, какие свойства и методы должен иметь объект. Одно из преимуществ интерфейсов — это возможность расширения (наследования). Один интерфейс может унаследовать другой, добавляя к нему новые свойства или методы:

interface Person {
	name: string;
	age: number;
}
interface Employee extends Person {
	position: string;
}
const employee: Employee = {
	name: "Alice",
	age: 30,
	position: "Developer"
};

Типы (type) более гибкие, они позволяют не только описывать объекты, но и создавать союзы (union) или пересечения (intersection) типов, работать с примитивными значениями (строки, числа и т. д.). Например, можно определить, что переменная может быть либо строкой, либо числом:

type StringOrNumber = string | number;
let value: StringOrNumber = "Hello";
value = 42; // Также валидно

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

type Animal = { species: string };
type Dog = Animal & { breed: string };
const myDog: Dog = {
	species: "Canine",
	breed: "Golden Retriever"
};

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

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию

Уровень

  • Рейтинг:

    5

  • Сложность:

    2

Навыки

  • TypeScript

    TypeScript

Ключевые слова

#typescript

#type

#interface

Подпишись на React Developer в телеграм

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию