2
그래서, 여기에 특정 인터페이스 만 포함 할 Object 유형의 인터페이스를 만들려고합니다. 예를 들면 다음과 같은 인터페이스 멤버 유형을 정의 할 수있는 방법이 있나요다른 인터페이스 유형의 반복 가능한 객체를 선언하는 방법은 무엇입니까?
Users: {
'user_id_goes_here': {
name: 'John',
last: 'Doe'
},
'user_id_goes_here': {
name: 'Albert',
last: 'Einstein'
},
...
}
:
export interface IUser {
name: string;
last: string;
};
export interface IRoom {
users: Object<IUser>; // this is wrong.
}
내가 기대하고있어이 사용자는 같은 것이라고? [userId: string]: IUser;
가 문자열 인덱스 서명을 불리는 것입니다
export interface Room {
users: UserMap;
}
export interface UserMap {
[userId: string]: User;
}
export interface User {
name: string;
last: string;
}
그건 :
답변 해 주셔서 감사합니다. 나는 내가 google에서 무엇을 검색해야하는지에 관해 명확히하지 않았다. 이제 나는지도 유형이라는 것을 기억합니다. – Nika
물론, 인덱스 서명은 자바 스크립트에서지도와 유사한 객체를 모델링하기위한 것이지만, 무엇이 호출되는지는 분명하지 않습니다. 희망을 갖고 누군가 검색하면이 대답을 찾습니다. 만약 당신이 사용하고있는 타입이 모두 타입이라면,'class' 대신에'interface' 선언을 사용할 수 있습니다 ('interface's는 아무런 방출도하지 않기 때문에). –
당신 말이 맞아요. 나는 인터페이스에 대해 언급하는 것을 잊어 버렸고, 많은 생각없이 빠르게 작성된 예제 였고 피곤했습니다. 조언 주셔서 감사합니다! 추신 : 질문을 편집하여 클래스를 인터페이스로 대체했습니다. – Nika