Initial Commit: Reinforced Knowledge Wiki v1.0 - Pure Origin
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
---
|
||||
id: P-REINFORCE-AUTO-4A5E0E
|
||||
category: "[[10_Wiki/💡 Topics/Programming & Language]]"
|
||||
confidence_score: 0.90
|
||||
tags: [auto-reinforced]
|
||||
last_reinforced: 2026-04-20
|
||||
github_commit: "[P-Reinforce] Continuous Worker - 타입 서술어(Type Predicates)"
|
||||
---
|
||||
|
||||
# [[타입 서술어(Type Predicates)]]
|
||||
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
> 타입 서술어(Type Predicates)는 함수의 반환 타입을 통해 특정 매개변수가 특정 타입에 해당하는지 여부를 타입스크립트 컴파일러에 알려주는 함수입니다 [1]. 런타임에는 불리언(boolean) 값을 반환하지만, 타입 시스템은 이 반환 값을 바탕으로 타입 좁히기(Type Narrowing)를 적용합니다 [1]. 개발자는 `is` 키워드를 활용해 커스텀 타입 가드(Type Guard)를 정의할 때 이 기능을 핵심적으로 사용합니다 [2].
|
||||
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
* **구문 및 동작 원리**:
|
||||
타입 서술어는 함수의 반환 타입 자리에 `매개변수명 is 특정타입`의 구문을 사용하여 정의합니다 [1, 2]. 예를 들어 `function isPercentage(x: number): x is Percentage`와 같이 작성하면, 이 함수가 `true`를 반환할 때 타입스크립트는 매개변수 `x`를 명시된 `Percentage` 타입으로 좁혀서 인식합니다 [3]. 이를 통해 `if` 문과 같은 조건부 블록 내부에서 해당 타입임이 보장된 상태로 코드를 작성할 수 있습니다 [1].
|
||||
* **주요 활용 시나리오**:
|
||||
유니언 타입(Union Types)으로 묶인 여러 타입 중 특정 타입을 안전하게 구분해내야 할 때 유용하게 쓰입니다 [2]. 또한, 런타임 검사 함수에 적용되어 특정 값이 브랜디드 타입(Branded Types) 또는 불투명 타입(Opaque Types)의 인스턴스로 취급될 수 있는지 검증하고 타입 시스템과 연결하는 다리 역할을 합니다 [1, 3, 4].
|
||||
* **안정성의 한계**:
|
||||
타입 서술어는 마법처럼 모든 타입 오류를 막아주지는 않습니다. 타입스크립트 컴파일러는 타입 서술어 내부의 실제 로직이 해당 타입의 의도와 정확히 일치하는지까지는 검사하지 않습니다 [1]. 따라서 이는 근본적으로 `as` 타입 단언(Type Assertion)과 유사한 수준의 타입 안정성을 가지며, 로직의 정확성은 전적으로 코드를 작성하는 개발자에게 달려 있습니다 [1].
|
||||
* **사용 시의 단점 및 보완**:
|
||||
`as` 단언문에 비해 `if` 조건문 래퍼(wrapper)를 의무적으로 작성해야 하므로 코드가 차지하는 공간이 늘어나고 런타임 로직이 추가된다는 단점이 있습니다 [5]. 이러한 가독성 저하를 해결하기 위해, 조건이 맞지 않으면 에러를 던져버리는 타입 단언 함수(Type Assertion Functions)를 타입 서술어와 결합하여 코드를 간결하게 구성하기도 합니다 [5, 6].
|
||||
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & RL Update)
|
||||
- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요.
|
||||
- **정책 변화:** Programming & Language 분야의 자동 자산화 수행.
|
||||
|
||||
## 🔗 지식 연결 (Graph)
|
||||
- **Related Topics:** [[타입 좁히기(Type Narrowing)]], [[타입 가드(Type Guards)]], [[브랜디드 타입(Branded Types)]], [[타입 단언(Type Assertions)]]
|
||||
- **Projects/Contexts:** [[타입스크립트 애플리케이션의 런타임 값 검증 및 커스텀 타입 보장 구조 설계]]
|
||||
- **Contradictions/Notes:** 타입 서술어는 타입을 좁혀주는 훌륭한 도구이지만, 그 자체로 내부 로직의 무결성을 타입스크립트가 검증해 주지 않기 때문에 개발자가 검증 로직을 잘못 작성하면 `as` 단언처럼 타입 시스템에 치명적인 거짓 정보(타입 오류)를 제공할 위험이 있습니다 [1].
|
||||
|
||||
---
|
||||
*Last updated: 2026-04-18*
|
||||
- Raw Source: [[00_Raw/2026-04-20/타입 서술어(Type Predicates).md]]
|
||||
---
|
||||
Reference in New Issue
Block a user