Item 3 Item 4 Item 5 Item 6 이보리 강철원 신현호 이예슬
![]() |
![]() |
---|---|
📚 Item 3 코드 생성과 타입이 관계 없음을 이해하기 <이보리> |
📚 Item 4 구조적 타이핑에 익숙해지기 <강철원> |
![]() |
![]() |
📚 Item 5 any타입 지양하기 <신현호> |
📚 Item 6 편집기를 사용하여 타입 시스템 탐색하기 <이예슬> |
Item 7 Item 8 Item 9 강철원 이보리 이예슬
![]() |
![]() |
---|---|
📚 Item 7 타입이 값들의 집합이라고 생각하기 <강철원> |
📚 Item 8 타입 공간과 값 공간의 심벌 구분하기 <이보리> |
![]() |
![]() |
📚 Item 9 타입 단언보다는 타입 선언 사용하기 <이예슬> |
📚 |
Item 10 Item 11 Item 12 강철원 신현호 이보리
![]() |
![]() |
---|---|
📚 Item 10 객체 래퍼 타입 피하기 <강철원> |
📚 Item 11 잉여속성 체크의 한계 인지 <신현호> |
![]() |
![]() |
📚 Item 12 함수 표현식에 타입 적용하기 <이보리> |
📚 |
Item 13 Item 14 Item 15 이보리 강철원 채희수
![]() |
![]() |
---|---|
📚 Item 13 타입과 인터페이스의 차이점 알기 <이보리> |
📚 Item 14 타입 연산과 제너릭 사용으로 반복 줄이기 <강철원> |
![]() |
![]() |
📚 Item 15 동적 데이터에 인덱스 시그니처 사용하기 <채희수> |
📚 |
Item 16 Item 17 Item 18 Item 19 이보리 채희수 신호 강철원
📚 Item 16 number 인덱스 시그니처보다는 Array, 튜플, ArrayLink를 사용하기 <이보리> |
📚 Item 17 변경 관련된 오류 방지를 위해 readonly <채희수> |
📚 Item 18 매핑된 타입을 사용하여 값을 동기화하기 <신현호> |
📚 Item 19 추론 가능한 타입을 사용해 장황한 코드 방지하기 <강철원> |
![image](https://private-user-images.githubusercontent.com/76567238/238186003-5dad3b5e-464e-41f6-8f0b-9d12bedf9a39.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjM4OTYxNzMsIm5iZiI6MTcyMzg5NTg3MywicGF0aCI6Ii83NjU2NzIzOC8yMzgxODYwMDMtNWRhZDNiNWUtNDY0ZS00MWY2LThmMGItOWQxMmJlZGY5YTM5LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MTclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODE3VDExNTc1M1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTU0MzRjOGIwMWE1ZjIwODcyOTg0NWEwZWMxNDdjNTVlY2Q4NGYyNTVjZGU3NGQ2M2E4Zjk4MjhkZDI5ZmMxMTImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.7XucvWzMZyd-BJELSwLH4ovijm_gKYWTzirbi2j96qc)
Item 20 Item 21 Item 22 이보리 이예슬 채희수
📚 Item 20 다른 타입에는 다른 변수 사용하기 <이보리> |
📚 Item 21 타입 넓히기 <이예슬> |
![]() |
|
📚 Item 22 타입 조힙기 <채희수> |
📚 |
![image](https://private-user-images.githubusercontent.com/76567238/239737773-e824933d-e9cf-4814-8f73-79036d41e198.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjM4OTYxNzMsIm5iZiI6MTcyMzg5NTg3MywicGF0aCI6Ii83NjU2NzIzOC8yMzk3Mzc3NzMtZTgyNDkzM2QtZTljZi00ODE0LThmNzMtNzkwMzZkNDFlMTk4LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MTclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODE3VDExNTc1M1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTMyZWVhMDE2ZjJiYzI2ZmM0NWU4Y2VkYWQ3YjZjYmM0OWFmZjJlMjBkMTE2ZGMyYzVmODk4ZDdiM2YyMDM2ZmEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.n59rm8wvgp8ht3kJfoAj_ufHxgaVY0h3bUJulkoKsLc)
Item 23 Item 24 Item 25 채희수 이보리 강철원
📚 Item 23 한꺼번에 객체 생성하기 <채희수> |
📚 Item 24 일관성 있는 별칭 사용하기 <이보리> |
![]() |
|
📚 Item 25 비동기 코드에는 콜백 대신 async 함수 사용하기 <강철원> |
📚 |
![image](https://private-user-images.githubusercontent.com/76567238/243094061-c8b84cf5-3c4f-4ba3-a1f3-612d36c25edc.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjM4OTYxNzMsIm5iZiI6MTcyMzg5NTg3MywicGF0aCI6Ii83NjU2NzIzOC8yNDMwOTQwNjEtYzhiODRjZjUtM2M0Zi00YmEzLWExZjMtNjEyZDM2YzI1ZWRjLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MTclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODE3VDExNTc1M1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTNlN2U5NTlhMTgyNmI0MmEyN2JiZmJlYmJmNzc3ZjdkN2EzM2VjYzdiZjhhMGY4OTM0ZGI3NTVmOTlmY2M3MWUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.hrVQa7u5Qn-tnIBCTAujRldfzIujkeWY8Bu1_-D-wls)
Item 27 Item 27 Item 28 강철원 채희수 이보리
📚 Item 27 함수형 기법과 라이브러리로 타입 흐름 유지하기 <강철원> |
📚 Item 27 함수형 기법과 라이브러리로 타입 흐름 유지하기 <채희수> |
![]() |
|
📚 Item 28 유효한 상태만 표현하는 타입을 지향하기 <이보리> |
📚 |
![image](https://private-user-images.githubusercontent.com/76567238/244930420-5c6a56c4-54ec-4a6e-8258-0875a79ebb95.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjM4OTYxNzMsIm5iZiI6MTcyMzg5NTg3MywicGF0aCI6Ii83NjU2NzIzOC8yNDQ5MzA0MjAtNWM2YTU2YzQtNTRlYy00YTZlLTgyNTgtMDg3NWE3OWViYjk1LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MTclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODE3VDExNTc1M1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWRmMDEzYzNlOTUxMmMzZTYyNjFhZGRmMDk0NjIyYzJlMWExYzkzNTkwMjE4ZDdhYmI1NjdkMzc0N2Q0ZjJkNTAmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.iNfjObA-W2CvsNBcaUj69pHr_bRLTiEH_ucH-tzpjI4)
Item 26 Item 29 Item 30 Item 31 강철원 신현호 채희수 이보리
📚 Item 26 타입 추론에 문맥이 어떻게 사용되는지 이해하기 <강철원> |
📚 Item 29 사용할 때는 너그럽게, 생성할 때는 엄격하게 <신현호> |
📚 Item 30 문서의 타입 정보를 쓰지 않기 <채희수> |
📚 Item 31 타입 주변에 null 값 배치하기 <이보리> |
![image](https://private-user-images.githubusercontent.com/76567238/244930318-a73c5106-db68-4219-b0eb-159914c00862.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjM4OTYxNzMsIm5iZiI6MTcyMzg5NTg3MywicGF0aCI6Ii83NjU2NzIzOC8yNDQ5MzAzMTgtYTczYzUxMDYtZGI2OC00MjE5LWIwZWItMTU5OTE0YzAwODYyLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MTclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODE3VDExNTc1M1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTRhNTcyOTcxYTdhYTA5ZDJjZDI0YmFhNmQzOWRhYjE4M2I5YWJjYWI5OGU1OTY2Nzk5YjZmNTU1OTU3MGM3M2UmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.mgWLQrqpCs2hr9dBuix06KzmpwuknDJ-LD6TtSai4Q4)
Item 32 Item 33 Item 34 Item 35 강철원 신현호 채희수 이보리
📚 Item 32 유니온의 인터페이스보다는 인터페이스의 유니온을 사용하기 <강철원> |
📚 Item 33 string 타입보다 더 구체적인 타입 사용하기 <신현호> |
📚 Item 34 부정확한 타입보다는 미완성 타입을 사용하기 <채희수> |
📚 Item 35 데이터가 아닌, API와 명세를 보고 타입 만들기 <이보리> |
![image](https://private-user-images.githubusercontent.com/76567238/246364538-200e3afb-e392-4dec-9985-0d9b4ffb00ec.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjM4OTYxNzMsIm5iZiI6MTcyMzg5NTg3MywicGF0aCI6Ii83NjU2NzIzOC8yNDYzNjQ1MzgtMjAwZTNhZmItZTM5Mi00ZGVjLTk5ODUtMGQ5YjRmZmIwMGVjLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MTclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODE3VDExNTc1M1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTJjMGUxOTk1ZTI4MDkyZGI1ZGNjZDc4Mzk0YzE1NDY3ZjQ0YmY2NzVjMDIzY2IwZmZjZWY1ZmQyZjJlMGUxOWYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.Mj3IeI_X6HSMSwhJaM-A64ZFwpwwZLXubbmlMmo2DVc)
Item 36 Item 37 Item 38 Item 39 강철원 신현호 채희수 이보리
📚 Item 36 유니온의 인터페이스보다는 인터페이스의 유니온을 사용하기 <강철원> |
📚 Item 37 string 타입보다 더 구체적인 타입 사용하기 <신현호> |
📚 Item 38 any 타입은 가능한 한 좁은 범위에서만 사용하기 <채희수> |
📚 Item 39 any를 구체적으로 변형해서 사용하기 🏆 <이보리> |
![image](https://private-user-images.githubusercontent.com/76567238/250240819-2d1eb484-17b0-4647-92b9-bb39efef0b0d.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjM4OTYxNzMsIm5iZiI6MTcyMzg5NTg3MywicGF0aCI6Ii83NjU2NzIzOC8yNTAyNDA4MTktMmQxZWI0ODQtMTdiMC00NjQ3LTkyYjktYmIzOWVmZWYwYjBkLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MTclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODE3VDExNTc1M1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWI4NzIyYzJiZDViY2ZjYzFjZDQzY2ZiOWFlOGI5N2Q4MWMyNmY3NWUwZDY4MDM3MGVjYzg1N2NmODllYTNmZTYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.9zZbQeRmcPn-S-xW01ydYPBSi97soU4G3NZvniPWDjE)
Item 40 Item 41 Item 42 Item 43 강철원 신현호 채희수 이보리
📚 Item 40 함수 안으로 타입 단언문 감추기 <강철원> |
📚 Item 41 any의 진화를 이해하기 <신현호> |
📚 Item 42 모르는 타입의 값에는 any 대신 unknown 사용하기 <채희수> |
📚 Item 43 몽키 패치보다는 안전한 타입을 사용하기 🏆 <이보리> |
![image](https://private-user-images.githubusercontent.com/76567238/252147685-6dfb958d-4f76-4e98-a25d-9351d3b8d280.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjM4OTYxNzMsIm5iZiI6MTcyMzg5NTg3MywicGF0aCI6Ii83NjU2NzIzOC8yNTIxNDc2ODUtNmRmYjk1OGQtNGY3Ni00ZTk4LWEyNWQtOTM1MWQzYjhkMjgwLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MTclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODE3VDExNTc1M1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTM0MDI4NmM0ZjJhOGZkNTZhMmNmODhiM2M2NDc5NzFlMWU4ODQ2NDE3ZGRiN2I5ODA2MDI3MzcyNjIxMDVlMzQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.RUiN5tUYJPvuAvzj1SClgPvqt_NxOnJb_Wthn--iQBM)
![image](https://private-user-images.githubusercontent.com/76567238/257043685-81104ecb-6476-477f-ab0b-e414e40bf53e.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjM4OTYxNzMsIm5iZiI6MTcyMzg5NTg3MywicGF0aCI6Ii83NjU2NzIzOC8yNTcwNDM2ODUtODExMDRlY2ItNjQ3Ni00NzdmLWFiMGItZTQxNGU0MGJmNTNlLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MTclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODE3VDExNTc1M1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTI0ODVlYWZmZmM5MGNiZGNlZmE1OTg1YWQ3Y2NhMWFhMzQwZWY3NTY3YmUzNmRjNzIzNDlhYWQ2OWM5MTBiN2UmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.oZcR0O3IlQXDdsU22s0Ho9_rNWeIYOjNQTeD1FxNSzo)
![image](https://private-user-images.githubusercontent.com/76567238/255382102-b707b0e0-ec0c-4fbd-aee6-7fed35144f00.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjM4OTYxNzMsIm5iZiI6MTcyMzg5NTg3MywicGF0aCI6Ii83NjU2NzIzOC8yNTUzODIxMDItYjcwN2IwZTAtZWMwYy00ZmJkLWFlZTYtN2ZlZDM1MTQ0ZjAwLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MTclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODE3VDExNTc1M1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTdhMDQ4ZjU3MWQwYTQ2MzNkNmE5ZDBiMDIxYjc4MDQ3MzdmYjU3ZWVjNWRhZDYyMDkzNGFlNDZjZGYzMWJkMmQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.0o0yKQO1iBuDeDRtb_8xDU0QRpVyqFMtDsj7ow0C2vc)
Item 44 Item 45 Item 46 Item 47 강철원 신현호 채희수 이보리
📚 Item 44 타입 커버리지를 추적하여 타입 안정성 유지하기 <강철원> |
📚 Item 45 devDependencies에 typescript와 @types 추가하기 <신현호> |
📚 Item 46 모르는 타입의 값에는 any 대신 unknown 사용하기 <채희수> |
📚 Item 47 공개 API에 등장하는 모든 타입을 익스포트 하기 🏆 <이보리> |
![image](https://private-user-images.githubusercontent.com/76567238/255382010-cda8ddf2-acbd-41a6-a704-f862c96a6a76.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjM4OTYxNzMsIm5iZiI6MTcyMzg5NTg3MywicGF0aCI6Ii83NjU2NzIzOC8yNTUzODIwMTAtY2RhOGRkZjItYWNiZC00MWE2LWE3MDQtZjg2MmM5NmE2YTc2LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MTclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODE3VDExNTc1M1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTU4ZDRiNjVhNDBjNTQwNWYzMzM0MWFhM2U4ZDY1OGI5Y2M1MWZhNmNlMWY2MWQ1MjlhOTEyNGVlMTFlZGMzZWUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.WWT82Mv5HJ8HbLUCFEEvwmc5vXYlXt4B4Jb7DGsJH6M)
Item 48 Item 49 Item 50 Item 51 강철원 신현호 채희수 이보리
📚 Item 48 API 주석에 TSDoc 사용하기 <강철원> |
📚 Item 49 콜백에서 this에 대한 타입 제공하기 <신현호> |
📚 Item 50 오버로딩 타입보다는 조건부 타입을 사용하기 <채희수> |
📚 Item 51 의존성 분리를 위해 미러 타입 사용하기 🏆 <이보리> |
![image](https://private-user-images.githubusercontent.com/76567238/258647475-acab45d0-aeb4-4792-8ac3-d831f75c93ef.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjM4OTYxNzMsIm5iZiI6MTcyMzg5NTg3MywicGF0aCI6Ii83NjU2NzIzOC8yNTg2NDc0NzUtYWNhYjQ1ZDAtYWViNC00NzkyLThhYzMtZDgzMWY3NWM5M2VmLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MTclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODE3VDExNTc1M1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWU3YjQ1YzAwYTBmM2E0OTRhYTgzMzdjMjhlYzg0MzExMDdiODI2N2Y4YjA1ZjgzZGFmNWUyOGJmMWJiYzUwMzgmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.tyiuKgjI76fkqwvIGvblCNW0Pi50zabP8hxxQQT-lAI)
Item 52 Item 53 Item 54 Item 55 강철원 신현호 채희수 이보리
📚 Item 52 테스팅 타입의 함정에 주의하기 <강철원> |
📚 Item 53 타입스크립트 기능보다는 ECMAScript 기능을 사용하기 <신현호> |
📚 Item 54 객체를 순회하는 노하우 <채희수> |
📚 Item 55 DOM 계층 구조 이해하기 🏆 <이보리> |
![image](https://private-user-images.githubusercontent.com/76567238/258647240-567c2a20-3329-4bd9-b896-ee940a8fa583.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjM4OTYxNzMsIm5iZiI6MTcyMzg5NTg3MywicGF0aCI6Ii83NjU2NzIzOC8yNTg2NDcyNDAtNTY3YzJhMjAtMzMyOS00YmQ5LWI4OTYtZWU5NDBhOGZhNTgzLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MTclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODE3VDExNTc1M1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTQ1NDg5YzdmZTQ4NzIwNjQ1OWE2YTE1YjcwYjI5YTg0N2I3MjAzYTViYWVjYzVjOWI0Njc2YzA1MjFhOTg0ZTQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.ofyCBxiellYPr8Ey9q5sOZvLuWBxxo6WvXY0g5Z0hg4)
Item 56 Item 57 Item 58 Item 59 강철원 신현호 채희수 이보리
📚 Item 56 정보를 감추는 목적으로 private 사용하지 않기 <강철원> |
📚 Item 57 소스맵을 사용하여 타입스크립트 디버깅하기 <신현호> |
📚 Item 58 모던 자바스크립트로 작성하기 <채희수> |
📚 Item 59 타입스크립트 도입 전에 @ts-check와 JSDoc으로 시험해 보기 🏆 <이보리> |
![image](https://private-user-images.githubusercontent.com/76567238/260296140-d84aef84-24df-4680-a9a8-c341f068f25d.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjM4OTYxNzMsIm5iZiI6MTcyMzg5NTg3MywicGF0aCI6Ii83NjU2NzIzOC8yNjAyOTYxNDAtZDg0YWVmODQtMjRkZi00NjgwLWE5YTgtYzM0MWYwNjhmMjVkLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MTclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODE3VDExNTc1M1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTVhNjNhMDY0ZmFkNjFkY2YxNGE1YjEyMDFiMjg0MzIzODYwOGNhNWRkZGQ0ODU4NmFjMGVhNDI4Y2JmZTRiYjImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.pW9zCCHWUYZO_3AWFYxij9umB9tzUrQjhhoEjPVlT-A)
Item 52-2 Item 60 Item 61 Item 62 강철원 신현호 채희수 이보리
📚 Item 52 테스팅 타입의 함정에 주의하기 <강철원> |
📚 Item 60 allowJs로 타입스크립트와 자바스크립트 같이 사용하기 <신현호> |
📚 Item 61 의존성 관계에 따라 모듈 단위로 전환하기 <채희수> |
📚 Item 62 마이그레이션의 완성을 위해 noImplicitAny설정하기 🏆 <이보리> |
![image](https://private-user-images.githubusercontent.com/76567238/261844909-1359e688-2163-4493-903d-a8e29b0856d0.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjM4OTYxNzMsIm5iZiI6MTcyMzg5NTg3MywicGF0aCI6Ii83NjU2NzIzOC8yNjE4NDQ5MDktMTM1OWU2ODgtMjE2My00NDkzLTkwM2QtYThlMjliMDg1NmQwLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MTclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODE3VDExNTc1M1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTAzNjViOTQ4YWEyYzc5ZTg0OWE5MWQ2ODJiY2UwZDFlMDljMzYxZDg0ZTkyZGNlOGM1N2Q5ZjdlMGZjOTM1NzgmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.cICCHBNuCs1qmnA2fzBl9s9HZKkVaFow1YypqGfBEsU)
1주차 ( 12 / 23 ~ 12 / 29 ) [책 내용 정리]
DAY 1 (금, 토) DAY 2 (월, 화) DAY 3 (수, 목) Item 1 Item 2 Item 3
Item 4 Item 5 Item 6 이예슬 신현호 강철원
![]() |
![]() |
---|---|
📚 Item 4 구조적 타이핑에 익숙해지기 <이예슬> |
📚 Item 5 any 타입 지양하기 <신현호> |
![]() |
![]() |
📚 Item 6 편집기를 사용하여 타입 시스템 탐색하기 <강철원> |
📚 Item 7 타입이 값들의 집합이라고 생각하기 |
Item 8 Item 9 Item 10 Item 11 강철원 신현호 김민재 이예슬
![]() |
![]() |
---|---|
📚 Item 8 타입 공간과 값 공간의 심벌 구분하기 <강철원> |
📚 Item 9 타입 단언보다는 타입 선언을 사용하기 <신현호> |
![]() |
![]() |
---|---|
📚 Item 10 객체 래퍼 타입 피하기 <김민재> |
📚 Item 11 잉여 속성 체크의 한계 인지하기 <이예슬> |
Item 12 Item 13 Item 14 Item 15 신현호 이예슬 강철원 김민재
![]() |
![]() |
---|---|
📚 Item 12 함수 표현식에 타입 적용하기 <신현호> |
📚 Item 13 타입과 인터페이스의 차이점 알기 <이예슬> |
![]() |
![]() |
📚 Item 14 타입 연산과 제너릭 사용으로 반복 줄이기 <강철원> |
📚 Item 15 동적 데이터에 인덱스 시그니처 사용하기 <김민재> |
Item 16, 21, 24 Item 17, 22 Item 18, 25 Item 19, 20 강철원 신현호 김민재 이예슬
Item 26 Item 27 Item 28 Item 29 김민재 이예슬 강철원 신현호
![]() |
![]() |
---|---|
📚 Item 27 함수형 기법과 라이브러리로 타입흐름 유지하기 <이예슬> |
📚 Item 26 타입 추론에 문맥이 어떻게 사용되는지 이해하기 <김민재> |
![]() |
![]() |
---|---|
📚 Item 28 유효한 상태만 표현하는 타입을 지향하기 <강철원> |
📚 Item 29 사용할 때는 너그럽게, 생성할 때는 엄격하게 <신현호> |
Item 31 Item 32 Item 33 Item 34 신현호 이예슬 강철원 김민재
![]() |
![]() |
---|---|
📚 Item 31 타입 주변에 null 값 배치하기 <신현호> |
📚 Item 32 인터페이스의 유니온을 사용하기 <이예슬> |
![]() |
![]() |
---|---|
📚 Item 33 string 타입보다 더 구체적인 타입 사용하기 <강철원> |
📚 Item 34 <김민재> |
Item 35 Item 38 Item 39,40 Item 41 강철원 김민재 이예슬 신현호
![]() |
![]() |
---|---|
📚 Item 35 데이터가 아닌, API와 명세를 보고 타입 만들기 <강철원> |
📚 Item 38 <김민재> |
![]() |
![]() |
---|---|
📚 Item 39,40 any를 구체적으로 변형해서 사용하기 함수 안으로 타입 단언문 감추기 <이예슬> |
📚 Item 41 any의 진화를 이해하기 <신현호> |
Item 42 Item 43 Item 44 Item 45 신현호 김민재 이예슬 강철원
![]() |
![]() |
---|---|
📚 Item 42 모르는 타입의 값에는 any 대신 unknown 사용하기 <신현호> |
📚 Item 43 <김민재> |
![]() |
![]() |
---|---|
📚 Item 44 타입 커버리지를 추적하여 타입 안전성 유지하기 <이예슬> |
📚 Item 45 devDependencies에 typescript와 @types추가하기 <강철원> |
Item 46 Item 48 Item 49 강철원 신현호 이예슬
![]() |
![]() |
---|---|
📚 Item 46 타입 선언과 관련된 세 가지 버전 이해하기 <강철원> |
📚 Item 48 API주석에 TSDoc 사용하기 <신현호> |
![]() |
![]() |
---|---|
📚 Item 49 콜백에서 this에 대한 타입 제공하기 <이예슬> |
📚 |
Item 50,51 Item 52 Item 53 신현호 이예슬 강철원
![]() |
![]() |
---|---|
📚 Item 50,51 오버로딩 타입보다는 조건부 타입을 사용하기 의존성 분리를 위해 미러 타입 사용하기 <신현호> |
📚 Item 52 테스팅 타입의 함정에 주의하기 <이예슬> |
![]() |
![]() |
---|---|
📚 Item 53 타입스크립트 기능보다는 ECMAScript 기능을 사용하기 <강철원> |
📚 Item 54 타입스크립트 도입 전에 @ts-check와 JSDoc으로 시험해보기 <이예슬> |
Item 58 Item 59 Item 60 강철원 이예슬 신현호
![]() |
![]() |
---|---|
📚 Item 58 모던 자바스크립트로 작성하기 <강철원> |
📚 Item 59 타입스크립트 도입 전에 @ts-check와 JSDoc으로 시험해 보기 <이예슬> |
![]() |
![]() |
---|---|
📚 Item 60 allowJs로 타입스크립트와 자바스크립트 같이 사용하기 <신현호> |
📚 |
Item 61 Item 62 git 신현호 강철원 이예슬
![]() |
![]() |
---|---|
📚 Item 61 의존성 관계에 따라 모듈 단위로 전환하기 <신현호> |
📚 Item 62 마이그레이션의 완성을 위해 noImplicitAny 설정하기 <강철원> |