초기값을 억지로 단언하지 않고 undefined를 타입에 포함한 뒤, 커스텀 훅에서 한 번만 검사하면 사용처는 안전한 값만 받습니다.
createContext<ThemeContextType |
undefined>(undefined)
Provider가 없을 가능성을 타입에 먼저 드러냅니다.
const ctx = useContext(ThemeContext)
커스텀 훅이 undefined 가능성을 한곳으로 모읍니다.