item 28
유효한 상태만 표현하는 타입 지향
유효한 상태와 무효한 상태를 둘다 표현하는 타입은 혼란을 초래하기 쉬움
// 유효한 상태와 무효한 상태를 둘다 표현하는 타입
interface State{
a: string;
b?: string;
c?: string;
}
// 유효한 상태만 표현하게 바꾼 모습
interface StateCase1{
a: string;
}
interface StateCase2{
a: string;
b: string;
}
interface StateCase3{
a: string;
c: string;
}
interface StateCase4{
a: string;
b: string;
c: string;
}
type State = StateCase1 | StateCase2 | StateCase3 | StateCase4
item 29
사용할 때는 너그럽게, 생성할 땐 엄격하게
== 매개변수의 타입은 넓어도 되지만 반환하는 타입은 구체적으로 하는 것이 좋음
item 30
타입 정보 문서에 쓰지 않기
주석은 코드와 연동되지도 않고, 컴파일러가 체크해주지도 않음
굳이 주석에 달 필요 없음
item 31
타입 주변에 null 값 배치하기
null과 null이 아닌 경우의 상태를 다루기 보다는
애초에 필요한 데이터가 모두 준비되었을 때 클래스를 만들도록 하는 것이 좋음 (어쩔 수 없는 경우면 ㄱㄱ)
strictNullChecks를 설정하면 null 값과 관련된 문제점 찾기 쉬워짐
반응형
'TIL > TypeScript' 카테고리의 다른 글
[TypeScript] 이펙티브 타입스크립트 item 38~44 (0) | 2022.08.05 |
---|---|
[TypeScript] 이펙티브 타입스크립트 item 32~37 (0) | 2022.08.04 |
[TypeScript] 이펙티브 타입스크립트 item 24~27 (0) | 2022.08.01 |
[TypeScript] 이펙티브 타입스크립트 item 21~23 (0) | 2022.07.28 |
[TypeScript]이펙티브 타입스크립트 Item 16~20 (0) | 2022.07.26 |
댓글