목록데이터시각화-KMG (29)
안녕하세요
const getAverageReplyTime = (replyTimes: ReplyTime[][][]) => { const averageReplyTimeArray: number[][] = []; for (const chatroom of replyTimes) { const averageReplyTime: number[] = chatroom.map((times: ReplyTime[]) => { const averageReplyTime: number = times.reduce((acc: number, cur: ReplyTime) => acc + (cur.difference / cur.count || 0)); return Math.floor(averageReplyTime / times.length); }); a..
열에 falsy한 값이 포함되는 경우 이를 제거하기 위한 방법이다. const messageData = getMessageData(filteredMessages.flat().filter(Boolean) as OriginMessageData[]); 타입스크립트에서 flat()의 결과값이 falsy한 값을 포함하고 있을 수 있으므로 이를 제거할 필요가 있다는 경고를 보여주었다. falsy한 값을 제거하기 위해서 filter를 사용하면 되겠지만 매우 간단하게 (Boolean)이라는 인자를 넣어주기만 하여도 배열 내의 모든 falsy한 값이 제거된다. ***실제로는 저 배열 안에 falsy한 값이 담기지 않도록 코딩하였는데, 타입스크립트는 참 까다롭다.
youtube api로 댓글을 가져오면 HTML 특수기호와 태그로 줄바꿈이 되어있다. 1. he 라이브러리 설치: HTML 특수기호 디코딩해주는 라이브러리 npm i he 텍스트에 포함된 HTML 특수기호를 디코딩하여 & 를 & 로 바꿔준다. textDisplay = he.decode(textDisplay); 2. 을 줄바꿈으로 바꾸기 replaceAll로 \n 으로 치환해준다. textDisplay = he.decode(textDisplay).replaceAll(" ", "\n"); 그리고 텍스트를 pre 태그로 감싸준다. {textDisplay} 결과
해결법 선요약 const Summary = ({ results }: { results: AnalyzedMessages[] }) => { => props를 { results }로 비구조화 할당, : { results: 타입 } 형식으로 타입을 지정해주어야 함 +++ useSelector로 불러온 state에 타입 지정하는 방법 const results = useSelector((state: { analyzedMessageSlice: AnalyzedMessages }) => state.analyzedMessageSlice); +++ PayloadAction 타입 지정하는 방법 setAnalyzedMessages: (state, action: PayloadAction) => { +++ event 타입 지정하는..