JNU-econovation / hotsix-study

에코노베이션 타입스크립트 스터디
5 stars 7 forks source link

[09/10] 공식 명칭에는 상표 붙이기 #25

Closed 2yunseong closed 1 year ago

2yunseong commented 1 year ago

제가 이번 주에 공부한 내용에는 채승님이 주제로 잡은 Type Guard 내용이 나옵니다~

어려운 부분이 있다면 어떤 부분이 어려운 지 코멘트로 남겨주세요. 감사합니다.

bada308 commented 1 year ago

제가 상표 속성에 대해 이해한 내용을 간단히 적어봤는데, 처음 접하는 개념이라 제대로 이해했는지 모르겠습니다. 잘못 이해한 부분이나 부족한 부분이 있다면 알려주시면 감사하겠습니다!!!😄

구조적 타이핑의 특성 때문에 코드가 의도치 않은 결과를 도출할 때가 있는데, 이를 방지하고자 상표 속성이라는 것을 사용한다.

_brand 속성이 있는 값만 타입 검사를 통과하는데, is keyword 등을 사용해서 _brand 속성이 없는 값이라도 특정 조건을 만족한다면 타입 검사를 통과하도록 시스템을 속인다!

이런 과정을 통해 타입 가드를 할 수 있다.

2yunseong commented 1 year ago

@loopy-lim

배울 수록 javascript를 넘는 무언가가 완성이 되는거 같네요. 그래서 사람들이 typescript를 배척하는건가...?

가지기 힘든 건 시기하기 마련이죠 ㅋㅋ 우린 시기하지 맙시다

2yunseong commented 1 year ago

@bada308

구조적 타이핑의 특성 때문에 코드가 의도치 않은 결과를 도출할 때가 있는데, 이를 방지하고자 상표 속성이라는 것을 사용한다.

맞습니다~ 👍 상표는 구조적 타이핑과 타입 체크가 가진 한계를 뛰어넘는 한 가지 방식 이라고 생각하면 될 것 같습니다~

_brand 속성이 있는 값만 타입 검사를 통과하는데, is keyword 등을 사용해서 _brand 속성이 없는 값이라도 특정 조건을 만족한다면 타입 검사를 통과하도록 시스템을 속인다! 이런 과정을 통해 타입 가드를 할 수 있다.

네~ 실제 런타임에 존재할 수 없는 타입을 생성해 특정 타입 취급을 해버린다고 생각하면 될 것 같아요.

개인적으로는 '절대경로의 시작은 /로 시작해야한다.' '이진 탐색 함수에 인자로 넘어오는 배열은 반드시 정렬되어 있어야 한다' 같은 도메인적으로 안전성을 보장해야하는 코드들을 타입시스템에서 한다는게 상표 붙이기의 가장 유의미한 사용이 아닐까 생각이 드네요!


사족이지만 꼭 변수명을 _brand로 할 필요는 없고, 구분할 수 있는 무언가를 붙이면 될 것 같습니다~!