TypeScript에서 type과 interface는 둘 다 타입을 정의하는 데 사용되지만, 몇 가지 중요한 차이점이 있다.각각의 특징과 사용 시기를 비교해보려 한다.Type vs Interface1. 정의 방식:type: 타입 별칭(Type Alias)을 생성한다.interface: 인터페이스를 선언한다.type User = {name: string;age: number;};interface User {name: string;age: number;}2. 확장성:type: 교차 타입(&)을 사용하여 확장한다.interface: extends 키워드를 사용하여 확장한다.type Animal = {name: string;}type Bear = Animal & { honey: boolean };interfac..
TypeScript를 사용하고있지만, 숙련도가 부족하다고 느끼는 가장 큰 포인트가 제너릭을 잘 몰라서인 것 같다.그런 김에, 제너릭의 다양한 용례를 통해 제너릭을 정리해보려한다.제너릭(Generic)제너릭(Generic)은 TypeScript에서 매우 강력한 기능으로, 코드의 재사용성을 높이고 타입을 더욱 유연하게 다룰 수 있다.제너릭을 사용하면 함수, 클래스, 인터페이스 등을 타입에 의존하지 않으면서도 타입 안전하게 작성할 수 있다.1. 기본적인 제너릭 함수제너릭 함수는 함수의 입력 타입과 반환 타입을 유연하게 지정할 수 있다.function identity(arg: T): T { return arg;}// 사용 예시const num = identity(42); // T는 number로 추론됨cons..
TypeScript에서 Mapped Type는 기존 타입을 변형하여 새로운 타입을 생성하는 역할을 한다.Mapped Types를 사용하면 객체 타입의 각 속성을 다른 타입으로 변환할 수 있는데, 이를 통해 코드의 재사용성과 타입 안전성을 높일 수 있다고 한다.Mapped Type는 주로 keyof 연산자와 함께 사용되어, 기존 타입의 키들을 기반으로 새로운 타입을 정의한다. 기본적인 형식type MappedType = { [P in keyof T]: T[P]; // 형식 1 [ P in K ] : T; // 형식 2 [ P in K ]? : T; // 형식 3 readonly [ P in K ] : T; // 형식 4 readonly [ P in K ]? : T; // 형식 5}; 다른 다양한 ..
타입스크립트(TypeScript)는 일반적인 타입 변환 작업을 쉽게 만들어주는 여러 유틸리티 타입(Utility Types)을 제공한다.일반적인 타입 정의는 적응을 했지만, 조금 더 타입스크립트를 잘 활용하기 위해,유틸리티 타입을 써보려는 김에 어떤 종류가 있는지 적어본다.1. Partial모든 프로퍼티를 선택적으로 만든다.interface Post { title: string; date: Date; content: string;}function updatePost(post: Post, fieldsToUpdate: Partial) { return { ...post, ...fieldsToUpdate };}const post1 = { title: "공지사항", date: new Date(), c..