문서의 임의 삭제는 제재 대상으로, 문서를 삭제하려면 삭제 토론을 진행해야 합니다. 문서 보기문서 이동문서 삭제토론 TypeScript (문단 편집) === [[학습 곡선]] 및 Trade-off === 자바스크립트는 객체가 갖는 속성을 '''어떻게든''' 개발자가 파악해서 '''어떻게든''' 에러 없이 동작하도록 만능 Object를 통해 설계하는 것이 기본적인 개발 흐름이다. 반면 타입스크립트는 이토록 지나치게 자유로운(=위험한) 변수/객체 활용에 의도적으로 제약을 걸어 개발의 안정성 및 편의성을 증대시키는 것이 그 존재의의임에 유의할 필요가 있다. 특히 복잡한 객체를 안전하게 활용할 수 있도록 제공되는 타입스크립트의 대표적인 도구가 Advanced Type과 Utility Type인데, 이 기능들은 자바스크립트 뿐만이 아니라 다른 언어에서도 생소한 개념[* 굳이 억지로 비교하자면 [[Java]]나 [[C##]] 등 언어의 reflection 개념과 겹치는 부분이 있긴 하겠지만, 애초에 reflection 자체도 자유자재로 활용할 수 있는 개발자가 흔치 않다.]이기 때문에 개발자들에게 익숙하지 않을 가능성이 상당히 높다. 모든 개발자가 문서를 한번 보고 응용 가능할 정도가 아니기 때문에, 첫 도입시에 이 부분을 간과하면 오히려 도입 전보다 생산성이 안좋아질 수도 있다는 점에 유의하는 것이 좋다. 또한 위와 같은 도구를 활용해서 기껏 엄밀하게 typing을 해놨더니 ~~업계에서 흔히 있는~~요구 사항 및 기능 변경, 리팩토링 작업 등으로 인해 기능 구현에 더해 typing까지 덤으로 다시 해야 하는 불상사가 생길 수도 있다. 경우에 따라서는 아예 any 타입[* 말 그대로 이 변수나 상수를 어떤 타입으로써 활용하든 신경쓰지 않겠다는 의미의 타입으로써, 이 타입으로 변수를 선언하면 컴파일러가 변수의 속성을 파악할 수 없으므로 자바스크립트와 동일하게 '''어떻게든''' 개발자가 파악해서 '''어떻게든''' 에러 없이 동작하도록 만들어야 한다. 즉 이걸 남용하면 코드 전체가 자바스크립트와 다를 게 없어진다.~~흑마법~~]로 도배하는 것만도 못한 결과가 초래될 수도 있다는 것. 따라서 적재적소에 타입스크립트의 기능을 도입하는 안목이 필요해질 수 있다.저장 버튼을 클릭하면 당신이 기여한 내용을 CC-BY-NC-SA 2.0 KR으로 배포하고,기여한 문서에 대한 하이퍼링크나 URL을 이용하여 저작자 표시를 하는 것으로 충분하다는 데 동의하는 것입니다.이 동의는 철회할 수 없습니다.캡챠저장미리보기