안녕하세요. 제가 아는 선에서 최대한 설명드릴게요! 우선 해당 에러가 나는 이유는 컴퓨터의 입장에서 "action" field는 있을수도 있고, 없을수도 있어서 타입스크립트에서 에러를 뱉어주는거에
안녕하세요. 제가 아는 선에서 최대한 설명드릴게요! 우선 해당 에러가 나는 이유는 컴퓨터의 입장에서 "action" field는 있을수도 있고, 없을수도 있어서 타입스크립트에서 에러를 뱉어주는거에요. 보시면 CancelActionPayload 타입이 3가지의 형태가 될 수 있는데 마지막 형태에서 action이 존재하지 않죠? 그러면 타입스크립트의 입장에서는 이렇게 생각할거에요. "CancelActionPayload 타입은 첫 번째 형태, 두 번째 형태, 세 번째 형태가 있는데 어느 형태가 될 지 나는 잘 모르겠어." 가 돼요. 사실 어떻게 보면 타입스크립트가 정말 고마운 역할을 해주고 있는거죠. 코딩을 하는 입장에서는 이 상황에 들어오는 "CancelActionPayload"은 action이 무조건 있어! 라고 상상할 수 있지만, 컴퓨터의 입장에서는 action이 없을 수도 있는 가능성이 있기 때문에 컴파일 단계에서 에러를 띄워주는거에요. 이런 상황에서 해결법은 CancelActionPayload 타입을 조금 더 쪼개서 확실하게 타입을 지정해는 방식이 있을 것 같아요. 혹은 타입 가드를 이용해서 해당 코드라인에서 CancelActionPayload의 타입을 확실하게 타입스크립트에게 알려주는 방식도 있을 수 있구요. 구글에 위의 키워드들로 검색을 해보시면 조금 더 자세한 내용들 볼 수 있을거에요! 감사합니다~