TypeScript 안전성 패턴: Branded Types

타입스크립트의 Branded Types에 대해 알고 계셨나요? Branded Type이란 타입스크립트 커뮤니티에서 개발된 일종의 안전성 패턴 인데요. 이 패턴은 기존 타입 시스템을 활용하여 더 구체적이고 안전한 타입을 만드는 방법 입니다. 이 기법은 기존 타입에 고유한 식별자를 추가하여 더 구체적이고 안전한 새로운 데이터 타입을 생성하는데요. 쉽게 말해 원시 타입(string, number)에 추가적인 타입 정보를 ‘브랜딩’하는 기법입니다.


구현 예시:

type Brand<K, T> = K & { __brand: T }
type UserID = Brand<string, "UserId">
type PostID = Brand<string, "PostId">

위 예시에서 UserIDPostIDstring 타입이지만 Brand 타입으로 인해 컴파일러 수준에서 구별 됩니다.


이렇게 동일한 string 타입이더라도 구별이 가능해지면 함수 인자 순서를 잘못 전달했을때 기존 타입스크립트는 동일한 string이기 때문에 에러를 감지하지 못했지만 Brand 타입은 에러를 잡아낼 수 있습니다.


따라서 Branded Types을 통해서 도메인 모델링, 유효성검사, API응답 요청 등에서 더 표현력 높고, 안정성 높은 코드를 작성할 수 있습니다.


추가로unique symbol 을 활용한 더 강력한 패턴 및 다양한 활용사례를 확인하고 싶으시면 블로그를 참고해보세요.


https://siosio3103.medium.com/typescript-branded-types로-런타임-타입-안정성-개선하기-768222c8df0d

TypeScript Branded Types로 런타임 타입 안정성 개선하기

Medium

TypeScript Branded Types로 런타임 타입 안정성 개선하기

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2024년 9월 20일 오전 1:09

 • 

저장 52조회 2,712

댓글 0

    함께 읽은 게시물

    🙋🏻‍♀️🙋🏻‍♂️ 아미고(Ameego) 광고 소재를 만들고 있는데요. 어떤 것이 끌리시나요?

    ... 더 보기

    조회 2,130


    《다정함도 체력에서 나오니까》

    ... 더 보기

    사용자가 공유한 콘텐츠

    www.folin.co

    사용자가 공유한 콘텐츠

    효과적인 문제 정의 4가지 방법

    ... 더 보기

    효과적인 문제 정의 4가지 방법

    Brunch Story

    효과적인 문제 정의 4가지 방법

    조회 436


    [데이터 해상도를 높이는 3가지 방법]

    원티드 하이파이브 2025 컨퍼런스에서 <데이터 해상도를 높이는 3가지 방법>이라는 주제로 발표를 진행하게 되었습니다. 데이터를 수집하고 관리하는 프로세스가 어느정도 잘 만들어진 회사라고 할지라도, 구체적으로 이를 어떻게 활용해서 제품과 비즈니스에 의미있는 성장을 만들어 낼 수 있는가 하는 부분에서는 어려움을 겪는 경우가 많습니다. '데이터 해상도'라는 키워드를 바탕으로, 알라미의 다양한 데이터 활용 사례에 대해 이야기를 나눠보려고 합니다. 컨퍼런스 오시는 분들, 5월에 코엑스에서 인사 나누시죠~

    원티드 하이파이브 2025

    원티드

    원티드 하이파이브 2025

    딸을 위한 받아쓰기 어플을 스스로 만드는 가족

    ... 더 보기

    초등 받아쓰기 시험, 단어 공부

    spellstart.com

    초등 받아쓰기 시험, 단어 공부

     • 

    댓글 1 • 저장 11 • 조회 3,301