by the power of TypeScript's well-known Turing Completed type system
타입을 잘 선언하면 잠재적인 버그를 피할 수 있고 프로젝트의 유지보수를 향상시킬 수 있습니다.
타입을 잘 다듬어 줄 수 있는 좋은 유틸리티 라이브러리들이 있습니다.([ts-toolbelt](https://github.com/millsp/ts-toolbelt), [utility-types](https://github.com/piotrwitek/utility-types), [SimplyTyped](https://github.com/andnp/SimplyTyped), 등등). 이중 이미 사용하고 있는 라이브러리들도 있을 수 있습니다.
이 프로젝트는 타입 시스템이 어떻게 작동하는지 이해하고, 자신의 유틸리티를 작성해보거나 챌린지를 재미있게 해보는 것을 목표로 하고 있습니다. 또한 현업에서 마주하게되는 질문과 해답을 위한 커뮤니티를 만들기 위한 목적도 있습니다! 이 또한 챌린지의 한 부분이 될 수 있겠죠!
## Challenges
> 배지를 클릭해서 챌린지의 자세한 내용을 확인해보세요.
> ✨ [Upcoming challenges](https://github.com/type-challenges/type-challenges/issues?q=is%3Aissue+is%3Aopen+label%3Anew-challenge)
> 🔥 여기서 챌린지를 시작해보세요. [TypeScript Playground](https://www.typescriptlang.org/play?install-plugin=%40type-challenges%2Fplayground-plugin)
## 읽을거리 추천
### 공식문서
- [타입스크립트 핸드북](https://www.typescriptlang.org/docs/handbook/intro.html)
- [유니온과 인터섹션 타입](https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#union-types)
- [리터럴 타입](https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#literal-types)
- [유틸리티 타입](https://www.typescriptlang.org/docs/handbook/utility-types.html)
- [고급 타입](https://www.typescriptlang.org/docs/handbook/2/types-from-types.html)
- [새로나온 핸드북](https://github.com/microsoft/TypeScript-Website/tree/v2/packages/documentation/copy/en/handbook-v2)
### 아티클
- [고급 타입스크립트 타입 배우기](https://medium.com/free-code-camp/typescript-curry-ramda-types-f747e99744ab)
- [타입 프로그래밍의 예술](https://mistlog.medium.com/the-art-of-type-programming-cfd933bdfff7)
- [타입쿼리 : jQuery 스타일의 타입 조작](https://mistlog.medium.com/type-query-jquery-style-type-manipulation-497ce26d93f)
### 세미나
- [타입스크립트는 왜 그럴까? - 집합으로 이해하는 타입스크립트](https://www.youtube.com/watch?v=F6iXvOBQ_B4)
### 프로젝트 / 해결책
- [Type Gymnastics](https://github.com/g-plane/type-gymnastics)
- [Type Challenges Solutions](https://github.com/ghaiklor/type-challenges-solutions)
- [TypeType Examples](https://github.com/mistlog/typetype-examples)
> TODO
## 기여 방법
이 프로젝트에 기여할 수 있는 방법은 다음과 같습니다
- 해답/ 해결책 공유하기
- 새로운 챌린지 제시하기
- 기존 챌린지에 테스트 케이스 추가하기
- 배울 수 있는 리소스 제공 또는 챌린지를 어떻게 해결할지 아이디어 제공하기
- 해결책이 있든지 없든지 상관없이 현업에서 마주하는 문제 공유하기 - 커뮤니티도 해당 문제를 해결하는데 도움을 줄 수 있습니다.
- 이슈에서 토론하며 다른 사람들 도와주기
- 해당 프로젝트 인프라에 기여하기 [TODOs.md](./TODOs.md)
[open an issue](https://github.com/type-challenges/type-challenges/issues/new/choose) 를 눌러서 맞는 템플릿을 선택하세요. 감사합니다!
## Thanks
This project was born from solving real-world types problem with [@hardfist](https://github.com/hardfist) and [@MeCKodo](https://github.com/MeCKodo). And great thanks to [@sinoon](https://github.com/sinoon) who contributed a lot while giving early feedback on this project.
### Inspired by
- [piotrwitek/utility-types](https://github.com/piotrwitek/utility-types)
- [psmyrdek/typescript-challenges](https://github.com/psmyrdek/typescript-challenges)
- [andnp/SimplyTyped](https://github.com/andnp/SimplyTyped)
### [Contributors](https://github.com/type-challenges/type-challenges/graphs/contributors)
![Contributors](https://contrib.rocks/image?repo=type-challenges/type-challenges)
## License
MIT