본문 바로가기
728x90
반응형

typescript9

[TypeScript] 유틸리티 타입 Partial Partial 타입이란? - 특정 타입의 부분 집합을 만족하는 타입을 정의할 수 있음 어떤 제네릭 타입 T를 돌면서 P가 제네릭 타입 T에 존재하면 속성으로 넣음 -> 제네릭 타입의 일부 속성만 가진 새로운 타입이 만들어짐type Partial = { [P in keyof T]?: T[P];}; 예를 들어,개인정보 수정 화면에서 기존의 개인정보데이터를 originalData 새롭게 수정된 데이터를 editData로 정해놨을 때 patch 리퀘스트를 보내려하면 originalDat와 editData를 비교해서 변경된 부분만 patch 리퀘스트에 실어서 보낼 일이 생기는데 이런 경우 타입 안정성을 지키기 위해 유용하게 쓸 수 있다.type Info = { name: string; age: numbe.. 2025. 8. 10.
[TIL] 11/15 -webkit-box, Ellipsis, $ 접두사, 낙관적 업데이트 1. EllipsisBox 만들기ElipsisBox 란 일반적으로 텍스트가 지정된 범위를 초과할 때 나머지 텍스트를 생략하고 말줄임표 (...) 를 표시하도록 스타일링된 컨테이너를 의미한다.  1.1. 전체 코드interface Props { children: ReactNode; linelimit: number; // 몇 줄까지 보여줄 것인지}const EllipsisBox = ({ children, linelimit }: Props) => { const [expanded, setExpanded] = useState(false); // 처음엔 확장되지 않음 return ( {children} {setExpanded(!expanded)}}> .. 2024. 11. 15.
[TIL] 11/14 - Zustand, useSearchParams, URLSearchParams, useLocation, 동적 CSS 1. ZustandZustand 는 작고 빠르며 확장 가능한 리액트 프로젝트에서 사용하는 상태관리(Store) 라이브러리이다.  스토어(Store) 는 애플리케이션의 여러 상태(state) 를 중앙에서 관리하는 것을 말한다. 이를 통해 컴포넌트 간 데이터를 쉽게 공유하고 데이터 변경을 감지해 자동으로 렌더링할 수 있다.  리액트는 기본적으로 부모 -> 자식 방향으로 데이터를 전달을 하고 이런 방식을 Props(Emits) 방식이라고 부른다.   하지만 컴포넌트가 중첩되어 있는 경우, 그림과 같이 중간에 있는 컴포넌트들이 불필요한 데이터를 취급하게 된다. (Props Drilling)이 방식은 컴포넌트 간의 결합도를 높이고 유지/보수를 어렵게 만든다.   그래서 스토어를 사용해서 공유해야 하는 데이터들을 .. 2024. 11. 14.
[TIL] 11/11 React context API, 테마 스위쳐 구현, 모르는 것 정리 1. styled-components 리액트와 같은 자바스크립트 프레임워크에서 CSS 작성을 도와주는 CSS-in-JS 라이브러리로, 자바스크립트 코드 안에서 스타일을 작성할 수 있게 해준다. 자바스크립트 코드 안에서 스타일을 작성하기 때문에 컴포넌트 단위로 스타일을 지정하여 모듈화된 코드 작성이 가능해져 유지보수와 확장성을 높이는 데 유리하다.   1.1. 특징 - CSS-in-JS: 자바스크립트 파일 안에서 직접 스타일링을 정의 -> 컴포넌트 자체적으로 스타일을 정의해 컴포넌트 간의 스타일이 격리되고 CSS 충돌을 방지할 수 있음 - Tagged Template Literals: 자바스크립트의 Tagged Template Literals 문법을 사용하여 CSS 를 정의하여 CSS 와 JavaScrip.. 2024. 11. 11.
728x90
반응형