Что такое интерфейсы в TypeScript?
Типы и интерфейсы
Интерфейс в TypeScript описывает форму объекта: какие у него поля и методы и каких они типов.
interface User {
readonly id: string; // нельзя изменить
name: string;
email?: string; // необязательное
greet(): string; // метод
}
const user: User = {
id: '1',
name: 'Анна',
greet() { return `Привет, ${this.name}`; },
};Возможности
- Расширение:
interface Admin extends User { role: 'admin' }. - Реализация классом:
class Customer implements User { … }. - Слияние объявлений: интерфейсы с одним именем объединяются.
- Сигнатуры: индексная (
[key: string]: number), вызова, конструктора.
Нюансы
Интерфейсы — только для компилятора: в JavaScript после компиляции их нет, проверить объект по интерфейсу в рантайме нельзя.
Коротко для собеседования
Интерфейс — описание формы объекта (поля, методы, readonly, необязательные), поддерживает extends, implements и слияние; в рантайме не существует.
Подробнее: TypeScript Handbook — Object Types