所以,我在这里尝试创建Object的接口类型,其中只包含特定的接口。例如:
export interface IUser {
name: string;
last: string;
};
export interface IRoom {
users: Object<IUser>; // this is wrong.
}
我期待用户会像:
Users: {
'user_id_goes_here': {
name: 'John',
last: 'Doe'
},
'user_id_goes_here': {
name: 'Albert',
last: 'Einstein'
},
...
}
有没有办法像这样定义接口成员类型?
答案 0 :(得分:3)
我想你想要这样的东西:
export interface Room {
users: UserMap;
}
export interface UserMap {
[userId: string]: User;
}
export interface User {
name: string;
last: string;
}
[userId: string]: IUser;
是字符串索引签名。这意味着每当您使用字符串索引到UserMap
时,您将获得IUser
。