TypeScript:描述对象的对象

新手上路,请多包涵

假设我有一个这样的界面:

 interface Student {
  firstName: string;
  lastName: string;
  year: number;
  id: number;
}

如果我想传递这些对象的数组,我可以简单地将类型写为 Student[]

我使用的不是数组,而是一个对象,其中学生 ID 是键,学生是值,以便于查找。

 let student1: Student;
let student2: Student;
let students = {001: student1, 002: student2 }

有什么方法可以将此数据结构描述为我传递给函数或从函数返回的类型吗?

我可以这样定义一个接口:

 interface StudentRecord {
  id: number;
  student: Student
}

但这仍然不是我想要的类型。我需要指出我有一个 _充满对象的对象_,看起来像这样,同样的方式 Student[] 表示我有一个充满对象的数组,看起来像这样。

原文由 Dustin Michels 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 236
2 个回答

您可以简单地使密钥动态化:

 interface IStudentRecord {
   [key: string]: Student
}

原文由 messerbill 发布,翻译遵循 CC BY-SA 4.0 许可协议

使用内置的 Record 输入:

 type StudentsById = Record<Student['id'], Student>;

原文由 Karol Majewski 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题