Sobes.tech
Middle

Оё дуруст аст, ки функсияи getUsername бо объекти навъи IUser (интерфейси худи истеъмолкунанда) дар TypeScript даъват карда шавад, агар сохтори майдонҳо бо TUser аз китобхона мувофиқат кунад? Принсипи типгузории сохториро шарҳ диҳед.

sobes.tech AI

Ҷавоб аз 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.