Middle
33
TypeScript-ում տիպեր (type) և ինտերֆեյսներ (interface) ի՞նչ նմանություններ և տարբերություններ ունեն: Որտե՞ղ օգտագործել։
Ընկերությունները, որտեղ հարցրել են
UserGate
Պատասխան AI-ից
sobes.tech AI
В TypeScript и type, и interface используются для описания типов объектов, но есть отличия:
- interface поддерживает декларативное расширение (declaration merging), то есть можно объявить интерфейс с одним именем в разных местах, и они объединятся.
- type более универсален: можно описывать не только объекты, но и объединения, пересечения, примитивы и т.д.
- Интерфейсы лучше подходят для описания публичных API и объектов, особенно если ожидается расширение.
- Типы удобны для сложных комбинаций типов и когда нужна большая гибкость.
Пример:
interface IUser {
name: string;
age: number;
}
type ID = string | number;
type UserWithID = IUser & { id: ID };
Если нужна расширяемость и декларативность — выбирайте interface. Если нужна сложная композиция типов — type.