--- id: P-REINFORCE-AUTO-F56CC2 category: "[[10_Wiki/πŸ’‘ Topics/Programming & Language]]" confidence_score: 0.90 tags: [auto-reinforced] last_reinforced: 2026-04-20 github_commit: "[P-Reinforce] Continuous Worker - never νƒ€μž…(never type)" --- # [[never νƒ€μž…(never type)]] ## πŸ“Œ ν•œ 쀄 톡찰 (The Karpathy Summary) > `never` νƒ€μž…μ€ νƒ€μž…μŠ€ν¬λ¦½νŠΈμ—μ„œ μ ˆλŒ€ λ°œμƒν•˜μ§€ μ•ŠλŠ” κ°’μ˜ νƒ€μž…μ„ μ˜λ―Έν•˜λ©°, μ§‘ν•©λ‘ μ μœΌλ‘œλŠ” μ–΄λ– ν•œ 값도 ν¬ν•¨ν•˜μ§€ μ•ŠλŠ” '곡집합(empty set)'으둜 κΈ°λŠ₯ν•œλ‹€ [1, 2]. 주둜 λͺ¨λ“  μΌ€μ΄μŠ€κ°€ μ²˜λ¦¬λ˜μ—ˆλŠ”μ§€ ν™•μΈν•˜λŠ” 철저함 검사(exhaustiveness checking), 였λ₯˜λ₯Ό λ°œμƒμ‹œν‚€κ±°λ‚˜ μ ˆλŒ€ λ°˜ν™˜ν•˜μ§€ μ•ŠλŠ” ν•¨μˆ˜μ˜ λ°˜ν™˜ νƒ€μž…, 그리고 양립할 수 μ—†λŠ” νƒ€μž…λ“€μ„ κ΅μ°¨ν–ˆμ„ λ•Œ λ°œμƒν•˜λŠ” νƒ€μž…μœΌλ‘œ ν™œμš©λœλ‹€ [3-6]. λ‹€λ₯Έ λͺ¨λ“  νƒ€μž…μ— 할당될 μˆ˜λŠ” μžˆμ§€λ§Œ, `never` μžμ‹  μ™Έμ—λŠ” μ–΄λ–€ νƒ€μž…λ„ `never`에 ν• λ‹Ήν•  수 μ—†λŠ” νŠΉμ„±μ„ μ§€λ‹Œλ‹€ [7, 8]. ## πŸ“– κ΅¬μ‘°ν™”λœ 지식 (Synthesized Content) - **집합둠적 관점(Set Theory):** `never` νƒ€μž…μ€ μ§‘ν•©λ‘ μ˜ 곡집합(βˆ…)에 ν•΄λ‹Ήν•œλ‹€ [2, 9]. λ”°λΌμ„œ μž„μ˜μ˜ νƒ€μž… `A`에 λŒ€ν•΄ `A & never = never`, `A | never = A`κ°€ 항상 μ„±λ¦½ν•œλ‹€ [2, 10]. 곡집합은 λͺ¨λ“  μ§‘ν•©μ˜ λΆ€λΆ„μ§‘ν•©μ΄λ―€λ‘œ `never extends T`λŠ” μ–Έμ œλ‚˜ μ°Έ(true)μ΄μ§€λ§Œ, `T extends never`λŠ” `T`κ°€ `never`일 λ•Œλ§Œ 참이 λœλ‹€ [8]. - **μ™„μ „μ„± 검사(Exhaustiveness Checking):** 식별 κ°€λŠ₯ν•œ μœ λ‹ˆμ˜¨(Discriminated Unions)을 `switch` λ¬Έ λ“±μ—μ„œ μ²˜λ¦¬ν•  λ•Œ, λͺ¨λ“  μΌ€μ΄μŠ€λ₯Ό λ‹€λ£¨μ—ˆλŠ”μ§€ ν™•μΈν•˜λŠ” 데 `never`λ₯Ό μ‚¬μš©ν•œλ‹€ [3, 11, 12]. κ°œλ°œμžκ°€ μ˜λ„ν•œ λΆ„κΈ°λ₯Ό μ œμ™Έν•˜κ³  남은 값을 `never` νƒ€μž… λ³€μˆ˜μ— ν• λ‹Ήν•˜λ„λ‘ ν•˜λ©΄, μΆ”ν›„ μ²˜λ¦¬λ˜μ§€ μ•Šμ€ μƒˆλ‘œμš΄ νƒ€μž…μ΄ μœ λ‹ˆμ˜¨μ— μΆ”κ°€λ˜μ—ˆμ„ λ•Œ 컴파일 νƒ€μž… μ—λŸ¬λ₯Ό λ°œμƒμ‹œμΌœ μ‹€μˆ˜λ₯Ό λ°©μ§€ν•  수 μžˆλ‹€ [12, 13]. - **초과 속성 κ²€μΆœ 및 μƒν˜Έ 배타적 속성 λͺ¨λΈλ§:** `never` νƒ€μž…μ΄ λ‹€λ₯Έ μ–΄λ–€ νƒ€μž…κ³Όλ„ ν˜Έν™˜λ˜μ§€ μ•ŠλŠ” νŠΉμ„±μ„ μ΄μš©ν•΄, νŠΉμ • 속성이 μž…λ ₯λ˜λŠ” 것을 μ›μ²œ 차단할 수 μžˆλ‹€ [7]. 초과 속성에 `never`λ₯Ό ν• λ‹Ήν•˜λ„λ‘ λ§Œλ“€λ©΄ λŸ°νƒ€μž„ μ΄μ „μ˜ νƒ€μž… κ²€μ‚¬μ—μ„œ μ—λŸ¬λ₯Ό μœ λ°œν•˜λ©° [7, 14], 이λ₯Ό μ‘μš©ν•˜λ©΄ ν•œμͺ½ νƒ€μž…μ΄ ν™œμ„±ν™”λ  λ•Œ λ‹€λ₯Έ 속성은 `never`둜 λ§Œλ“€μ–΄ ν˜Όμš©μ„ λ°©μ§€ν•˜λŠ” μƒν˜Έ 배타적(Exclusive Props) 관계λ₯Ό κ΅¬ν˜„ν•  수 μžˆλ‹€ [15]. - **ν•¨μˆ˜ λ°˜ν™˜ νƒ€μž…(Function Return Type):** μ˜ˆμ™Έ(error)λ₯Ό λ˜μ§€κ±°λ‚˜ λ©ˆμΆ”μ§€ μ•ŠλŠ” λ¬΄ν•œ 루프에 λΉ μ Έ μ˜μ›νžˆ μ™„λ£Œλ˜μ§€ μ•ŠλŠ” ν•¨μˆ˜μ˜ λ°˜ν™˜ νƒ€μž…μœΌλ‘œ μ‚¬μš©λœλ‹€ [5, 6]. μ΄λŠ” λ‹¨μˆœνžˆ κΈ°λŠ₯ μˆ˜ν–‰ ν›„ 아무것도 λ°˜ν™˜ν•˜μ§€ μ•Šκ³  μ’…λ£Œλ˜λŠ” ν•¨μˆ˜μ˜ `void` νƒ€μž…(μ‹€μ œλ‘œλŠ” `undefined`λ₯Ό λ°˜ν™˜ν•¨)κ³ΌλŠ” 뚜렷이 κ΅¬λ³„λœλ‹€ [5]. - **νƒ€μž… κ΅μ§‘ν•©μ˜ κ²°κ³Ό:** ꡬ쑰적 타이핑 λ‚΄μ—μ„œ ꡐ집합(`&`)을 톡해 속성을 μž¬κ·€μ μœΌλ‘œ 병합할 λ•Œ 좩돌이 λ‚˜κ±°λ‚˜, `false & true` 및 `null & boolean`κ³Ό 같이 λ™μ‹œμ— λ§Œμ‘±ν•  수 μ—†λŠ” 양립 λΆˆκ°€λŠ₯ν•œ νƒ€μž…μ„ ꡐ차할 경우 결과적으둜 `never` νƒ€μž…μ΄ μƒμ„±λœλ‹€ [4, 9, 16]. ## ⚠️ λͺ¨μˆœ 및 μ—…λ°μ΄νŠΈ (Contradictions & RL Update) - **κ³Όκ±° λ°μ΄ν„°μ™€μ˜ 좩돌:** μžλ™ν™” 엔진에 μ˜ν•΄ λ§€ν•‘λœ μ§€μ‹μœΌλ‘œ, μΆ”ν›„ μ •λ°€ 검증 ν•„μš”. - **μ •μ±… λ³€ν™”:** Programming & Language λΆ„μ•Όμ˜ μžλ™ μžμ‚°ν™” μˆ˜ν–‰. ## πŸ”— 지식 μ—°κ²° (Graph) - **Related Topics:** [[식별 κ°€λŠ₯ν•œ μœ λ‹ˆμ˜¨(Discriminated Unions)]], [[초과 속성 검사(Excess Property Checking)]], [[ꡬ쑰적 타이핑(Structural Typing)]] - **Projects/Contexts:** [[switchλ¬Έ μ™„μ „μ„± 검사(Exhaustiveness checking)]], [[μ—λŸ¬ 핸듀링 및 λ¬΄ν•œ 루프 ν•¨μˆ˜ 섀계]], [[μƒν˜Έ 배타적 속성(Exclusive Props) νŒ¨ν„΄]] - **Contradictions/Notes:** μ’…λ£Œ ν›„ λ°˜ν™˜κ°’μ΄ μ—†λŠ” ν•¨μˆ˜λŠ” `undefined`λ₯Ό λ°˜ν™˜ν•˜λŠ” κ²ƒμ΄λ―€λ‘œ `void` νƒ€μž…μ„ μ§€μ •ν•΄μ•Ό ν•˜λ©°, `never` νƒ€μž…μ€ μ ˆλŒ€ 정상 μ’…λ£Œλ˜μ§€ μ•ŠλŠ” ν•¨μˆ˜μ—λ§Œ μ‚¬μš©ν•΄μ•Ό ν•œλ‹€ [5]. λ˜ν•œ λͺ¨λ“  νƒ€μž…μ˜ μƒμœ„ 집합인 `any` νƒ€μž…κ³Ό 비ꡐ μ‹œ, `any extends never`λŠ” `0 | 1`둜 ν‰κ°€λ˜μ–΄ `any` νƒ€μž…μ΄ 곡집합일 κ°€λŠ₯성도 λ‚΄ν¬ν•˜κ³  μžˆλŠ” νŒ¨λŸ¬λ…μŠ€(μ—­μ„€)적인 μ„±μ§ˆμ„ 보인닀 [17]. --- *Last updated: 2026-04-18* - Raw Source: [[00_Raw/2026-04-20/never νƒ€μž…(never type).md]] ---