interface EventDetail_1 {

  detail_1: stirng;

}

interface EventDetail_2 {

  detail_2: string;

}


interface EventMap {

  detail_1: EventDetail_1;

  detail_2: EventDetail_2;

}


const addEventListener = <T extends keyof EventMap>(type: T, handler: (detail: EventMap[T]) => void) => {

    if (type === 'detail_1') {

        handler({ detail_1: 'value' }); // 여기서 안됨

    }

}


오류 보면 detail_2 까지 같이 넣으라는데 왜 안되노


Type '{ detail_1: string; }' is not assignable to type 'EventDetail_1 & EventDetail_2' 이러는데


자동으로 type 얘 이용해 타입추론 되서 detail_1 이것만 들갈 수 있는거 아님?


뭐노