이번주에 배운 것

김병훈·2022년 5월 13일
0

await을 리턴하지 말자

참고: How return await can slow down your code

async function example() {
  const server = await createServer();
  const endpoints = await createEndpoints(server);
  return await startServer(server, endpoints);
}

children만 리턴하는데 왜 타입 오류가 날까?

참고: Why React.FC dosen't allow me to just return children?

children은 React.ReactNode 타입인데, React.FC 함수가 반환하는 리턴 타입과 다르기 때문에 생기는 문제.

type ReactNode = ReactChild | ReactFragment | ReactPortal | boolean | null | undefined;
// React.FC의 반환 타입
ReactElement<any, any> | null;

커링(Currying) 활용

참고: ko.javascript.info, velog-커링에-대해-알아보자

활용 예제

const myUpdater = 
  (newTodo: TodoType) =>
  (prevQueryData: TodoType[]) =>
    prevQueryData.map(prevQueryData, (prevTodo) => {
      if (prevTodo.id === newTodo.id) {
        return newTodo;
      }
      return prevTodo;
    })

// ...
queryClient.setQueryData(
  todosQueryKey(),
  myUpdater(newTodo),
)

커링 전

const myUpdater = 
  (prevQueryData: TodoType[], newTodo: TodoType) =>
    prevQueryData.map(prevQueryData, (prevTodo) => {
      if (prevTodo.id === newTodo.id) {
        return newTodo;
      }
      return prevTodo;
    })

// ...
queryClient.setQueryData(
  todosQueryKey(),
  (prevQueryData) => myUpdater(prevQueryData, newTodo),
)
profile
재밌는 걸 만드는 것을 좋아하는 메이커

0개의 댓글