
5주차 TypeScript Study 에서는 Union , Intersection 과 enum 에 대해 배웠습니다
스터디 내용을 복습하면서 각 타입이 언제 사용되는지 더 알아보았습니다
합집합 A ∪ B → 즉, A타입, B 타입 둘 중 하나 !
| 로 구분하고 Javascript 의 OR 연산자와 비슷한 역할을 한다!
let one: string | number | boolean;
one = 1;
one = '1';
one = true;
type alias 와 & 를 사용해야 함교집합 A ∩ B → 즉, A타입이면서 B타입 !
& 로 구분하고 Javascript 의 OR 연산자와 비슷한 역할을 한다!
type Student = {
study: () => void;
};
type Developer = {
develop: () => void;
}
const subin: Human & Developer = {
study() {
console.log("공부 중");
} ,
develop() {
console.log("개발 중");
}
}
새로운 필드를 추가하고 싶을 때 사용열거형, 특정 값들의 집합을 이름이 있는 상수들로 구성하는 방법
enum LanguageCode {
korean = 'ko',
english = 'en',
japanese = 'ja',
chinese = 'zh',
spanish = 'es',
}
추상화를 하고 싶을 때enum LanguageCode {
korean = 'ko',
english = 'en',
japanese = 'ja',
chinese = 'zh',
spanish = 'es',
}
const code: LanguageCode = LanguageCode.korean확장 불가능성enum 과 다른 enum 을 합쳐 또 다른 enum을 만들기 위해서는 union type 을 사용해야한다불완전한 타입 안정성코드 사이즈 증가enum 은 결국 JS 객체로 컴파일 되기 때문에 많은 enum 선언은 전체적인 코드 사이즈에 영향을 준다enum LanguageCode {
korean = 'ko',
english = 'en',
japanese = 'ja',
chinese = 'zh',
spanish = 'es',
}
type LanguageCode = 'ko' | 'en' | 'ja' | 'zh' | 'es'
const LanguageCode {
korean : 'ko',
english : 'en',
japanese : 'ja',
chinese : 'zh',
spanish : 'es',
} as const
type LanguageCodeType = typeof LanguageCode[keyof typeof LanguageCode]enum의 문제점에서 끝나지 않고 대체해서 사용하는 방법을 코드 예시로 설명해두어서 더 잘 이해가 갔어요!!
문자형 enum에 대해 찾아보다가, 우아한 기술블로그에서 작성한 타스 코딩 컨벤션 정하기 관련 게시글에서 enum컨벤션 정하기와 관련된 아티클을 보아서 공유합니당 ! enum과 const enum과 const assertion 중에서 enum을 선택했더라구요!
아티클 공유하고 갑니다 !
https://techblog.woowahan.com/9804/#toc-1
즐겁게 읽었습니다. 유용한 정보 감사합니다.