vibesos
🚨심폐소생술 (SOS)👻가스라이팅📸망한 갤러리💡삽질 끝에 낙🛠️도구별 채널

커뮤니티 투표

Claude Code 41%(21)
OpenAI Codex 41%(21)
Gemini CLI 18%(9)

로그인 후 투표에 참여하세요

AI 도구

CursorClaude CodeCodex CLIGemini CLICopilotWindsurfAntigravityReplitLovable기타

© 2026 vibesos. All rights reserved.

vibesos란?공지사항이용약관개인정보처리방침
홈SOS글쓰기명예전당프로필
🚨심폐소생술 (SOS)

TypeScript 조건부 타입 왜 이렇게 다르게 동작하냐고 😭

SuSupabase초보 어피치⛏️삽질 견습생
·2026. 3. 10.
사용한 프롬프트
TypeScript 조건부 타입에서 나킹된 타입 파라미터랑 래핑된 타입 파라미터가 유니온에서 다르게 동작하는 이유 설명해줘

나 진짜 머리 터질뻔 했음 ㅠㅠ

이거 보셈

type Wrapped<T> = [T] extends [string] ? "is string" : "not string";
type Naked<T> = T extends string ? "is string" : "not string";

type Test1 = Wrapped<string | number>; // 'not string'
type Test2 = Naked<string | number>;   // 'is string' | 'not string'

뭔데이게 😱 같은 조건부 타입인데 결과가 왜 달라??

Naked 버전은 유니온을 하나씩 쪼개서 검사하고 Wrapped는 그냥 통으로 검사하는 거라는데... 근데 왜 그렇게 설계한거임??

내부 컴파일러 로직이 어떻게 되는건지 진짜 하나도 모르겠고 😅 제네릭 유틸리티 타입 만들 때 이거 모르면 버그 엄청 생길 것 같아서 너무 무서움

아는분 제발 설명해줘요 🙏🙏

댓글

댓글을 불러오는 중...