pile·
프론트엔드·데브시스터즈데브시스터즈·

CSS in JS 라이브러리에서 Typesafe하게 Theme 관리하기

문제Emotion 등 CSS-in-JS로 중첩 컴포넌트의 theme을 관리하면 상위에 속성이 누적되고, 하위에서 부분 확장 시 TypeScript 타입 안전성이 깨졌다.
접근제네릭과 intersection 타입을 사용해 makeTheme 유틸을 만들고 MergedTheme<Base, Theme> = Base & Theme로 ThemeProvider를 중첩 가능하게 한다.
결과잘못된 theme 속성이 컴파일 단계에서 차단되고 ThemeProvider 무제한 중첩이 가능해졌다. Emotion 11 마이그레이션도 유틸 한 곳만 수정하면 됐다.
데브시스터즈
데브시스터즈 블로그
원문은 여기서 이어서 읽을 수 있어요
원문 읽기
읽음 (0)

이 글과 비슷한

  1. 프론트엔드·LINE EngineeringLINE Engineering·

    AI로 웹 엔지니어 없이 LINE 앱 안에서 그룹 영상 통화 서비스 만들기

    LINE Planet 팀의 PM과 Android 엔지니어 두 명이 웹 전문 엔지니어 없이 LINE 앱 내에서 그룹 영상 통화 서비스를 개발한 과정을 다룬다. LIFF(LINE Front-end Framework)와 LINE Planet SDK를 활용해 React/Vite 기반 웹 앱을 구성했고, Firebase Cloud Functions로 별도 서버 인프라 없이 구현을 완료했다.

    #react#webrtc#firebase+2