본문 바로가기
TypeScript

typescript Optional Properties 이해

by spare8433 2024. 8. 3.

설명

일반적으로 javascript유효하지 않은 속성에도 접근이 가능하며 undefined 를 반환한다.


객체에 해당 속성이 자체가 없는 경우나 속성이 아직 정의되지 않은 경우 모두 undefined 인 조금은 아이러니한 상황을 마주 할 수 있다.


typescript 에서 Optional Properties 를 활용해 앞서 언급한 위 두 상황을 조금 더 명확하게 표현 할 수 있다.



// appleCount 속성의 타입이 number이거나 undefined입니다.
interface fruitStoreA {
    appleCount: number| undefined
}

// appleCount 속성이 존재하지 않을 수 있으며, 존재한다면 그 타입이 number입니다. 
// appleCount 속성에 접근할 경우, 존재하지 않는다면 undefined를 반환합니다.
interface fruitStoreB {
    appleCount?: number
}




결론

물론 위에서도 언급한 것처럼javascript 특성 상 위 두 상황을 명확하게 구분하지 않아도 될 상황이 10 에 9 은 되겠지만(심지어 ts 에서도 두 상황을 바꿔서 사용해도 거의 문제없을 것으로 예상 된다.) api 요청, 응답 객체같이 명확하게 구분해야 하는 상황이 있을 수 있으니 명확하게 이해할 필요가 있다.




참고

https://www.typescriptlang.org/docs/handbook/2/objects.html#optional-properties