inferTypeScript에서 extends를 사용할 때 infer 키워드를 함께 사용할 수 있습니다.infer는 "추론하다"라는 의미 그대로, 타입스크립트 안에서 타입을 추론하는 데 사용됩니다.infer는 보통 삼항 연산자 형태의 조건부 타입 안에서 활용되며, 특정 타입이 어떤 구조를 따를 때 그 안에서 타입을 뽑아내는 용도로 사용됩니다. 예를 들어 다음과 같은 타입이 있을 때,type UnpackPromise = T extends Promise[] ? K : any;UnpackPromise 타입은 제네릭으로 T를 받아T가 Promise로 래핑된 경우라면 K를 반환하고, 그렇지 않은 경우에는 any를 반환합니다.즉, Promise는 Promise의 반환값의 타입을 추론하겠다는 뜻입니다. 아래 예시를 ..
TypeScript
조건부 타입이란?TypeScript의 조건부 타입은 제네릭 타입 매개변수에 따라 타입을 다르게 지정할 수 있는 기능입니다.문법은 다음과 같습니다.T extends U ? X : YT가 U에 할당 가능하면 X, 그렇지 않으면 Y 타입이 됩니다.이를 활용하면 다양한 경우의 수를 타입 레벨에서 유연하게 처리하면서도 타입 안정성을 높일 수 있습니다.예시: 등록된 결제 수단 가져오기앱에서 유저가 여러 개의 카드나 은행 계좌를 등록할 수 있으며,이 목록을 가져오는 useGetRegisteredList()라는 커스텀 훅이 있습니다.이 훅은 입력값에 따라 리턴 타입이 달라져야 합니다."card" 또는 "appcard" → Card[]"bank" → Bank[]기본 타입 구조interface Bank { finan..
시작말이번 글에서는 any, unknown, never 등의 타입과 함께,인덱스드 액세스 타입, 맵드 타입, 제네릭 등 유용하게 쓰이는 타입 문법들을 정리해봅니다.any vs unknownunknown 타입은 any와 마찬가지로 모든 타입의 값을 담을 수 있는 타입입니다.let unknownVal: unknown;unknownVal = 1;unknownVal = 'abc';unknownVal = () => console.log('hi');하지만 차이점도 명확합니다.unknown 타입의 값은 다른 타입으로 선언된 변수에 바로 할당할 수 없습니다.let a: any = unknownVal; // Olet b: number = unknownVal; // Xlet c: string = unknown..
시작말자바스크립트는 자유롭고 유연한 언어입니다. 하지만 이러한 유연함은 때로는 예상하지 못한 오류나 버그의 원인이 되기도 합니다.규모가 작을 땐 문제가 없더라도, 코드가 복잡해지고 여러 명이 협업하게 되면 안정성 있는 코드 작성이 점점 더 중요해집니다. 이런 문제를 해결하기 위해 등장한 것이 바로 TypeScript입니다.이 글에서는 TypeScript가 왜 필요한지, JavaScript와는 어떤 점이 다른지, 그리고 타입 시스템의 핵심 개념인 정적 타이핑, 구조적 타이핑에 대해 정리해보겠습니다.TypeScript를 사용하는 이유1. 오류 예방TypeScript는 정적 타이핑(Static Typing)을 지원하는 언어입니다.컴파일 시점에 타입 오류를 미리 확인할 수 있기 때문에, 런타임에 발생할 수 있는..