Notice
Recent Posts
Recent Comments
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Tags more
Archives
Today
Total
관리 메뉴

HYEWON JUNG의 개발일지

20231219 TIL Typescript React Query TodoList (3) 본문

개발일지

20231219 TIL Typescript React Query TodoList (3)

혜won 2023. 12. 21. 01:22

목표

  • 과제 정리

새로 알게 된것/ 오늘의 코드

typescript를 이용하며 해맸던 것

1. map은 어떻게 사용해야할까// 콜백함수의 인자도 타입이 필요하다!

        {data
          .filter((item: TodoItem) => item.isDone === !isActive)
          .map((item: TodoItem) => {
            return <Todo key={item.id} todo={item} isActive={isActive} />;
          })}

 나같은 경우 model폴더에서 type을 지정해 둔것이 있어서 사용하면 된다. 

 

map의 인자인 item은 결국 data속에 각각의 todo인거니 

      "id": "1e147b21-3c93-a961-0ce3-3a7efded3ca4",
      "title": "방 치우기",
      "content": "큰방, 침실 위주로!",
      "isDone": false

 

이렇게 4가지를 담은 객체 타입이 필요하다 그래서 TodoItem 이라는 타입은 model 폴더에서 보면

export type TodoItem = {
  id: string;
  content: string;
  title: string;
  isDone: boolean;
};

이렇게 된다. 

2. props는 어떻게 내려주는가// 타입 지정은 어디서 하는가

정답은 받는 곳!

props 내려주는 곳

<Todo key={item.id} todo={item} isActive={isActive} />

받는 곳

function Todo({ todo, isActive }: { todo: TodoItem; isActive: boolean }) {}

 

3. style-components에서 props는 어떻게?

주는 곳 

 <Button bordercolor={'red'} onClick={handleSwitchButton}>

받는 곳

const Button = styled('button')<{ borderColor: string }>`
  border: 1px solid ${(props) => props.borderColor};
  background-color: white;
  margin: 5px;
  width: 45%;
  height: 35px;
  border-radius: 10px;
  &:hover {
    background-color: ${(props) => props.borderColor};
    color: white;
  }
`;

 

## 이렇게 하면 콘솔에 warning이 뜨는데 

styled-components: it looks like an unknown prop "bordercolor" is being sent through to the DOM, which will likely trigger a React console error. If you would like automatic filtering of unknown props, you can opt-into that behavior via `<StyleSheetManager shouldForwardProp={...}>` (connect an API like `@emotion/is-prop-valid`) or consider using transient props (`$` prefix for automatic filtering.)

이런  뭐 암튼  $를 사용하라는 거다

그냥 bordercolor 를 $bordercolor로 변경해서 진행하면 된다.

오늘의 알고리즘

2023.12.19 - [알고리즘 풀이 모음] - 크기가 작은 부분문자열

 

크기가 작은 부분문자열

문제설명 숫자로 이루어진 문자열 t와 p가 주어질 때, t에서 p와 길이가 같은 부분문자열 중에서, 이 부분문자열이 나타내는 수가 p가 나타내는 수보다 작거나 같은 것이 나오는 횟수를 return하는

hyewonjung-coding.tistory.com

개념정리

typescript에서 props는 받는 곳에서 type을 지정해준다.

목표 달성여부

  • 과제 정리

내일 목표

  • 글세..