Typescript(9)
-
[타입스크립트] 유틸리티 타입(Utility Types)
유틸리티 타입(Utility Types)란TypeScript에서 제공하는 내장된 타입 변환 함수들을 의미한다. 기존 타입을 변형하거나 확장하여 새로운 타입을 쉽게 생성할 수 있도록 도와주는 역할이다. 📚 주요 유틸리티 타입 0️⃣ PickK> 정의: 주어진 `객체 타입(T)`에서 `특정 속성(K)들만 선택하여` 새로운 타입으로 재구성type Person = { name: string; age: number; address: string; hobby: string;};type PickType = Pick;let result: PickType = { name: 'Lee', age: 15 }; 1️⃣ Omit K>정의: 주어진 `객체 타입(T)`에서 `특정 속성(K)들을 제외하여` 새로운 타입으..
2025.02.04 -
[타입스크립트] 조건부 타입, 맵드 타입
조건부 타입이란?조건부 타입은 TypeScript에서 `extends` 키워드와 `삼항 연사자`를 사용하여 특정 조건에 따라 타입을 정의할 수 있는 기능이다. 이를 통해 코드에서 다양한 조건을 처리할 수 있으며, 타입을 유연하게 관리할 수 있다. 1️⃣ 기본 활용 예제//조건부 타입type IsString = T extends string ? 'string' : 'not string';type A = IsString; // "string"type B = IsString; // "not string"해석:`T extends string`: T가 string 타입인지를 확인`? 'string'`: 만약 T가 string이라면 'string' 타입을 반환`: 'not string'`: 만약 T가 string이..
2025.02.04 -
[타입스크립트] 제네릭(Generic)란?
제네릭(Generic)이란? 제네릭이란 함수, 클래스, 인터페이스에서 타입을 파라미터처럼 사용하는 것을 의미한다. 제네릭의 장점같은 코드 구조를 가진 여러 타입을 한 번에 처리할 수 있다.이를 통해 코드의 재사용성이 증가한다.코드 중복을 줄일 수 있어 유지보수가 용이하다.가독성이 향상되어 코드 이해가 쉬워진다. 1️⃣ 제네릭 함수제네릭 타입을 명시적으로 정의하는 방식과 타입 추론을 통해 정의하는 방식이 존재// 제네릭(Generic) 함수 정의const Identity = (arg: T): T => { return arg;};// 1. 명시적 정의let num = Identity(12);// 2. 타입 추론let str = Identity('hello'); console.log('🚀 ~ num:'..
2025.02.04 -
[타입스크립트] 타입 단언(Type Assertion), 타입 가드(Type Guard)
타입 단언 (Type Assertion)타입 단언 (Type Assertion)은 특정 값의 타입을 사용자가 강제로 지정하는 역할이다. `as` 키워드 사용 타입 단언의 주의사항‼️ Typescript의 공식 Docs에서는 이렇게 말한다.타입 단언은 컴파일 시간에 제거되므로, 타입 단언에 관련된 검사는 런타임 중에 이루어지지 않습니다. 타입 단언이 틀렸더라도 예외가 발생하거나 null이 생성되지 않을 것입니다. 즉, 타입 단언을 사용하면, 컴파일러는 사용자가 지정한 타입을 그대로 적용하기 때문에 타입 검사를 우회한다. 이로 인해 타입 오류는 컴파일 단계에서 발견되지 않고, 런타임 시점에서 오류가 발생할 수 있다.interface Human { name: string; age: number;}let ..
2025.02.03 -
[타입스크립트] 구조적 타이핑(Structural Typing)
구조적 타이핑(Structural Typing)객체의 타입을 명시적으로 정의하지 않아도, 객체의 속성과 메서드가 일치하면 같은 타입으로 동작하는 방식interface Person { name: string; age: number;}const user = { name: "Alice", age: 30 }; // 명시적으로 타입 정의 x const person: Person = user; // 그러나, 구조가 맞으면 타입이 호환됨 알아두기✨✨ 덕 타이핑(Duck Typing)"오리처럼 걷고, 오리처럼 소리 내면, 그것은 오리다."라는 뜻을 가졌으며, 구조적 타이핑과 마찬가지로 객체의 타입을 명시적으로 정의하지 않아도, 객체의 속성과 메서드가 일치하면 같은 타입으로 동작하는 방식을 말한다. 구조적 타이..
2025.02.01 -
[타입스크립트] 객체 타입의 정의(Type alias, Interface)
1️⃣ 타입 별칭(Type alias)type Point = { x: number; y: number };const point: Point = { x: 10, y: 20 }; 2️⃣ 인터페이스(Interface)interface Person { name: string; age: number;}const person: Person = { name: 'Alice', age: 25 }; 3️⃣ 타입 별칭과 인터페이스의 차이점 1. 객체 병합인터페이스: 동일 이름의 인터페이스가 여러 번 선언되면, 하나의 타입으로 병합타입 별칭: 같은 이름의 타입 별칭을 다시 선언하면 오류가 발생interface Hello { name: string}interface Hello { age: number} //Hello..
2025.02.01