TS

👶 TypeScript

컴패니언 객체 패턴(companion object pattern)

컴패니언 객체 패턴 컴패니언 객체 패턴(companion object pattern)은 스칼라에서 유래한 기능으로, 같은 이름을 공유하는 객체와 클래스를 쌍으로 연결합니다. TypeScript에는 타입과 객체를 쌍으로 묶는 비슷한 기능의 비슷한 패턴이 존재하는데 이 역시도 컴패니언 객체 패턴이라 부르기로 하겠습니다. 다음은 컴패니언 객체 패턴의 예입니다. type Currency = { unit: 'EUR' | 'GBP' | 'JPY' | 'USD' value: number } let Currency = { DEFAULT: 'EUR', from(value: number, unit = Currency.DEFAULT): Currency { return {unit, value} } } TypeScript에서 ..

👶 TypeScript

매핑된 타입(mapped type)

매핑된 타입 TypeScript는 더 안전한 nextDay 타입을 선언할 수 있는 더 강력한 두 번째 방법도 제공합니다. 바로 매핑된 타입(mapped type)입니다. 매핑된 타입을 이용해 nextDay가 DayOfTheWeek를 키로, Day를 값으로 갖는 객체라고 선언해 보겠습니다. type DayOfTheWeek = 'Mon' | 'Tue' | 'Wed' | 'Thu' | 'Fri' type Day = DayOfTheWeek | 'Sat' | 'Sun' let nextDay: {[K in DayOfTheWeek]} = { } 다음과 같은 유용한 에러 메시지를 바로 얻을 수 있습니다. '{}' 형식에 '{ Mon: any; Tue: any; Wed: any; Thu: any; Fri: any; }'..

👶 TypeScript

Record 타입

Record 타입 TypeScript의 내장 Record 타입을 이용하면 무언가를 매핑하는 용도로 객체를 활용할 수 있습니다. 객체가 특정 키 집합을 정의하도록 강제하는 방법이 두 가지 있는데, 바로 Record 타입이 그 첫 번째 방법입니다. Record를 이용해 한 주의 각 요일을 다음 요일로 매핑하도록 만들어보겠습니다. Record를 이용하면 nextDay의 키와 값에 제한을 추가할 수 있습니다. type DayOfTheWeek = 'Mon' | 'Tue' | 'Wed' | 'Thu' | 'Fri' type Day = DayOfTheWeek | 'Sat' | 'Sun' let nextDay: Record = { Mon: 'Tue' } 위의 코드를 작성하면 다음과 같은 유용한 에러 메시지가 바로 나타..

👶 TypeScript

객체 타입의 타입 연산자 - keyof 연산자

keyof 연산자 keyof를 이용하면 객체의 모든 키를 문자열 리터럴 타입 유니온으로 얻을 수 있습니다. 다음은 APIResponse에 적용한 예입니다. type APIResponse = { user: { userId: string; friendList: { count: number; friends: { firstName: string; lastName: string; }; }; }; }; type ResponseKeys = keyof APIResponse // type ResponseKeys = "user" type UserKeys = keyof APIResponse['user'] // type UserKeys = "friendList" | "userId" type FriendListKeys = ke..

개발자 린다씨
'TS' 태그의 글 목록 (8 Page)