> Можно ли создать второй интерфейс на основе первого, включающий все его поля, и как это сделать в TypeScript? (TypeScript)

Уровень: senior · Роль: frontend · Категория: Технические вопросы

Компании: The Tribe

Стек: TypeScript

> Пример ответа

Да, в TypeScript можно создать второй интерфейс на основе первого, включив в него все его поля. Для этого используется ключевое слово extends. Это позволяет наследовать поля и методы (если они есть) от базового интерфейса, а затем добавлять новые или переопределять существующие.

Пример:

TYPESCRIPT
interface Base {
id: number;
name: string;
}
interface Extended extends Base {
email: string;
age?: number; // необязательное поле
}
const user: Extended = {
id: 1,
name: "Анна",
email: "anna@example.com",
// age: 25 // опционально
};

Если нужно исключить или изменить тип поля, можно использовать Omit или Pick в сочетании с extends:

TYPESCRIPT
interface Modified extends Omit<Base, 'name'> {
name: number; // переопределяем тип
role: string;
}

Также возможно множественное наследование через запятую: interface C extends A, B { ... }. Это мощный механизм для композиции типов.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью