feat: achieve 600 files milestone in AI knowledge base
This commit is contained in:
@@ -1,25 +1,29 @@
|
||||
---
|
||||
id: P-REINFORCE-AUTO-1AAB27
|
||||
id: P-REINFORCE-AI-DISCRIMINATED-UNIONS
|
||||
category: "[[10_Wiki/💡 Topics/AI]]"
|
||||
confidence_score: 0.90
|
||||
tags: [auto-reinforced]
|
||||
confidence_score: 0.98
|
||||
tags: [TypeScript, TypeSystem, Patterns, Safety]
|
||||
last_reinforced: 2026-04-20
|
||||
github_commit: "[P-Reinforce] Continuous Worker - Discriminated-Unions"
|
||||
---
|
||||
|
||||
# [[Discriminated-Unions]]
|
||||
# [[Discriminated-Unions]] (구별된 유니온)
|
||||
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
> 지식 요약 정보 추출 중...
|
||||
> "이름표를 보고 타입을 가려내는 타입스크립트의 가장 우아한 분기 처리." 공통 속성(리터럴 타입)을 사용하여 여러 타입이 섞인 유니온에서 특정 타입을 완벽하게 추론해내는 패턴이다.
|
||||
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
본문 구조화 작업 중...
|
||||
- **The Schema**:
|
||||
- 모든 타입이 동일한 이름의 속성(예: `kind` 또는 `type`)을 가지되, 그 값은 고유한 문자열 리터럴이어야 한다.
|
||||
- `type Shape = { kind: 'circle'; radius: number } | { kind: 'rect'; width: number; height: number };`
|
||||
- **Type Guarding**:
|
||||
- `if` 혹은 `switch` 문으로 `kind` 값을 체크하면, 스코프 내부에서 타입스크립트가 자동으로 타입을 좁혀준다(Narrowing).
|
||||
- **Core Benefit**:
|
||||
- 오타 방지 및 런타임 안정성 확보.
|
||||
- 모든 케이스를 처리했는지 검사하는 **Exhaustiveness Checking** 구현 가능.
|
||||
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & RL Update)
|
||||
- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요.
|
||||
- **정책 변화:** AI 분야의 자동 자산화 수행.
|
||||
## ⚠️ 모순 및 업데이트 (RL Update)
|
||||
- 구별된 유니온은 강력하지만, 데이터 소스가 외부(API 등)인 경우 수신 데이터에 실제로 해당 '이름표'가 있는지 보장할 수 없다. 따라서 Zod와 같은 런타임 스키마 검증 도구로 입구를 보호한 뒤 내부 로직에서 유니온을 사용하는 것이 모범 사례다.
|
||||
|
||||
## 🔗 지식 연결 (Graph)
|
||||
|
||||
- Raw Source: [[00_Raw/2026-04-20/Discriminated-Unions.md]]
|
||||
---
|
||||
- Related: [[Exhaustiveness-Checking]] , [[Type-Guards]]
|
||||
- Context: [[Redux-Reducers-Design]]
|
||||
|
||||
Reference in New Issue
Block a user