Files
2nd/10_Wiki/Topics_Blog/Excess-Property-Checking.md
T

28 lines
1.6 KiB
Markdown

---
id: P-REINFORCE-AI-TS-EXCESS-PROPERTITY
category: "10_Wiki/💡 Topics/AI"
confidence_score: 1.00
tags: [TypeScript, Programming, TypeSafety, ErrorHandling]
last_reinforced: 2026-04-20
---
# [[Excess-Property-Checking|Excess-Property-Checking]] (잉여 속성 체크)
## 📌 한 줄 통찰 (The Karpathy Summary)
> "너 정체가 뭐야? 시키지 않은 건 하지 마." 객체 리터럴을 변수에 할당하거나 함수 인자로 전달할 때, 정의되지 않은 추가 속성이 포함되어 있으면 타입 에러를 발생시켜 오타나 실수(Mistyping)를 방지하는 TypeScript의 안전장치다.
## 📖 구조화된 지식 (Synthesized Content)
- **Object Literal Restriction**: 변수에 미리 담지 않고 직접 `{...}` 형태로 넘길 때만 발동함.
- **Structural Typing Exception**: TypeScript는 기본적으로 구조적 타이핑을 따르지만, 리터럴 할당 시에는 '엄격한 타입 일치'를 요구하여 버그를 줄임.
- **Bypassing Methods**:
- 변수에 할당 후 전달.
- 타입 단언(`as AnyType`) 사용.
- 인덱스 시그니처(`[key: string]: any`) 추가.
## ⚠️ 모순 및 업데이트 (RL Update)
- 이 기능은 때때로 "덕 타이핑(Duck Typing)이라며 왜 안 돼?"라며 초보자들을 당황하게 만든다. 하지만 이는 리터럴 객체 생성 시 발생할 수 있는 오타(예: `colour` vs `color`)를 런타임 이전 단계에서 원천 봉쇄하기 위한 의도적인 설계다.
## 🔗 지식 연결 (Graph)
- Related: Structural-Typing-vs-Nominal-Typing , TypeScript-Best-Practices
- Concept: Type-Guard