Це часте запитання на інтервʼю, особливо на Junior i Middle позиції. В цілому, те що зазвичай хочуть почути на інтервʼю - це merge інтерфейсів.
Розберемо на прикладі:
interface IUser {
name: string;
email: string;
}
interface IUser {
age: number;
}
// TypeScript зробить merge цих двох інтерфейсів
// Це тепер один інтефейс тому IUser буде очікувати і поле age
const user: IUser = {
name: 'Test',
email: 'test@test.com',
age: 30,
}
Якщо ви спробуєте такий підхід з type, то отримаєте помилку. При відповіді на це питання, буде бонусом додати випадки, коли краще використовувати type, коли interface:
- interface краще використовувати для опису структури обʼєктів і класів, як це і задумано в ООП.
- для всього іншого доцільніше використовувати type, особливо в контексті побудови складних типів: union, utility types, function signatures…