1. 문제 상황

2. 원인 분석

3. 해결 방법

  1. 명확한 타입 선언:

  2. 타입 파일 분리:

  3. 코드 수정:

4. 타입 파일 생성 및 사용 예시

src/types/room.ts

export interface Player {
  userId: number;
  nickname: string;
  activeCharacter: string;
  level: number;
}

export interface RoomPayload {
  allReady: boolean;
  currentPlayers: Player[];
  host: string;
  readyStatus: { [key: string]: boolean };
  roomId: string;
  status: string;
}

export interface WebSocketMessage {
  messageType: string;
  payload: RoomPayload;
}

다른 파일에서의 사용 예시

import { WebSocketMessage, RoomPayload, Player } from '@/types/room';

5. 결론

이와 같이 공통 타입들을 별도의 파일로 분리하고 재사용하면 프로젝트 전반의 코드 품질과 관리가 훨씬 용이해집니다.