개발/이펙티브 타입스크립트

[이펙티브 타입스크립트+28] 유효한 상태만 표현하는 타입을 지향하기

Junghyun Kim 2021. 8. 28. 21:36
반응형

4장 타입 설계
아이템 28 | 유효한 상태만 표현하는 타입을 지향하기

3줄 요약
1. 상태 타입을 만들 때에는 유효한 타입만을 가지고 있어야 한다.
2. 상태 타입을 만들 때에는 유니온 타입을 이용한 타입을 지향하자. 
3. 

참고) 이펙티브 타입스크립트는 타입스크립트의 기본 그 이상을 다룹니다.


이번 챕터에서는 타입 설계와 관한 아이템들을 다룹니다.
타입 설계를 명확하게함으로써 예상치 못한 버그가 숨어들 여지를 줄일 수 있습니다.

상태를 표현하는 타입을 만들 때에는 유효한 타입만을 가지고 있어야 합니다.
State 타입을 예시로 들어보겠습니다.
State 타입에는 a와 b 속성은 반드시 가지고 c와 d 속성은 선택적인 속성입니다.
그리고 State 타입은 3가지 상태가 있다고 가정해보겠습니다. (One / Two / Three)

먼저 지양해야 할 방식입니다.

속성에 중점을 둔 타입 정의.

State 타입의 속성을 그대로 모델링했습니다.
이 방법의 문제는 One / Two / Three 상태가 아닌 다른 상태를 만들어버릴 수 있습니다.
때문에 이러한 방식보다는 유효한 타입만을 가지도록 아래와 같이 만드는 것을 지향해야 합니다.

상태에 중점을 둔 타입 정의.

상태를 먼저 정의했습니다. (StateOne / StateTwo / StateThree)
이렇게 하면 정의되지 않는 상태 타입이 되는 것을 막을 수 있습니다.

 

 

Materials From
1. <이펙티브 타입스크립트>(댄 밴더캄 지음, 장원호 옮김, 인사이트 2021)
2. 타입스크립트 공식 홈페이지 | https://www.typescriptlang.org/

 

Typed JavaScript at Any Scale.

TypeScript extends JavaScript by adding types to the language. TypeScript speeds up your development experience by catching errors and providing fixes before you even run your code.

www.typescriptlang.org

 

반응형