Назад к вопросам
Junior — Middle
107
Что отличает интерфейсы от классов в TypeScript и в каких ситуациях используют каждый из них?
Ответ от нейросети
sobes.tech AI
В TypeScript интерфейсы и классы имеют разные назначения и особенности:
- Интерфейсы описывают структуру данных — какие свойства и методы должен иметь объект. Они не содержат реализацию, а служат для типизации и контрактов.
- Классы — это шаблоны для создания объектов с реализацией методов и состоянием (свойствами). Классы могут содержать конструкторы, методы с телом, модификаторы доступа.
Когда использовать:
- Интерфейсы применяют для описания формата данных, особенно когда важна только структура, например, для параметров функций или объектов.
- Классы используют, когда нужна реализация логики, создание экземпляров с поведением, наследование.
Пример интерфейса:
interface IUser {
id: number;
name: string;
}
Пример класса:
class User implements IUser {
constructor(public id: number, public name: string) {}
greet() {
console.log(`Hello, ${this.name}`);
}
}
Таким образом, интерфейсы — это контракт, а классы — конкретная реализация с поведением.