Middle
Type және interface арасындағы айырмашылық қандай?
sobes.tech AI
AI-дан жауап
TypeScript-те type және interface жиі объектілердің типтерін сипаттау үшін пайдаланылады, бірақ олардың арасында айырмашылықтар бар:
-
Кеңейтілімділік:
interfaceкеңейтілуі (extends) және біріктіруі (declaration merging) мүмкін, яғни бірнеше бір атаумен жарияланымдар біріктіріледі.typedeclaration merging-ті қолдамайды, бірақ типтердің бірігуі мен қиылысуын жасауға болады.
-
Мүмкіндіктері:
typeәлдеқайда әмбебап — ол тек объектілерді ғана емес, сонымен қатар бірігулер, қиылысулар, примитивтер, кортеждер және т.б. сипаттауға мүмкіндік береді.interfaceтек объектілер мен кластардың құрылымдарын сипаттау үшін арналған.
-
Синтаксисі және таңдау:
interfaceжиі жария API және кластарды сипаттау үшін артықшылығы бар, себебі декларативті кеңейтуге мүмкіндік береді.typeкүрделі типтер үшін ыңғайлы, мысалы, бірігулер немесе mapped types.
Мысал:
interface IUser {
name: string;
}
interface IUser {
age: number; // интерфейстер бірігеді
}
const user: IUser = { name: 'Alice', age: 30 };
// type мұндай жағдайда жұмыс істемейді:
// type User = { name: string };
// type User = { age: number }; // қате: Duplicate identifier 'User'
// type бірігулер жасауға мүмкіндік береді:
type ID = string | number;