Back to questions
ОТП Банк
Middle
1
Задача на TypeScript: корректен ли вызов функции getUsername с объектом типа IUser (собственный интерфейс потребителя), если структура полей совпадает с TUser из библиотеки? Объясните принцип структурной типизации.
Companies where asked
Answer from AI
sobes.tech AI
В TypeScript вызов функции с объектом типа IUser будет корректен, если структура полей IUser совпадает с TUser из библиотеки, даже если это разные интерфейсы. Это связано с принципом структурной типизации, который используется в TypeScript.
Структурная типизация означает, что совместимость типов определяется не по имени типа, а по их структуре — набору свойств и их типам. Если объект имеет все необходимые поля с правильными типами, он считается подходящим.
Пример:
interface TUser {
id: number;
name: string;
}
interface IUser {
id: number;
name: string;
}
function getUsername(user: TUser): string {
return user.name;
}
const user: IUser = { id: 1, name: 'Alice' };
// Вызов корректен, так как структура совпадает
getUsername(user);
Таким образом, если поля и их типы совпадают, TypeScript позволит использовать объект IUser там, где ожидается TUser.