TypeScript is a variant of JavaScript.
It is useful when it comes to large-sized codebase and distributed teams working on the same project.
자바스크립트는 dynamically typed 언어라, 오직 런타임에서만 에러를 확인할 수 있다. 이 부분이 코드를 짜는 데 있어서 좀 더 자유로움을 주고 새로운 컴포넌트를 추가하거나 바꾸는데 도움을 주지만, 큰 프로젝트와 큰 팀 안에서 작업이 이루어질 경우 미리 발견되지 않은 undefined variables는 이 후 문제를 야기하는 경우가 많다.
반면에 타입스크립트는 optional strong static typing을 소개했는데, 한번 declared된 variable은 타입을 바꾸지 않고, 오직 특정 값만을 취한다. type-related mistakes를 알려주기 때문에, 결과적으로 less error-prone code 와 better performance during execution을 가져온다.
이 static typing은 오직 버그를 발견하는 것에만 도움이 되는 것이 아니라, 코드를 more structured, makes it self documenting and more readable, speeds up debugging and refactoring. 이런 점들이 큰 팀 안에서 작업할 경우 전반적인 productivity를 올려준다.
Early spotted bugs
: TypeScripts finds common bugs at the compile state. This helps developers to focus on correcting miskates in the logic rather than catching bugs.
Predictability
: Everything stays the way as it was initially defined.
Readability
: This is especially important for big teams working on the same project. 팀 내에서 커뮤니케이션이 부족하더라도 코드 자체가 읽기쉽고 이해하기 쉽기 때문에 큰 팀에서 한가지 프로젝트를 진행하는 데 도움이 된다.
Rich IDE support
Fast refactoring
: navigation tools like "find all references" or "go to definition" 을 통해 리팩토링 프로세스를 덜 힘들게 해준다.
Power of OOP
:classes, interfaces, inheritance 등의 OOP 컨셉을 쓰기 때문에 well-organized scalable code를 쓰기 쉽게 만들어, 프로젝트가 커지고 복잡할수록 이 부분이 큰 이점이 된다.
Cross-platform and cross-browser compatibility
자바스크립트가 문제없이 열리는 브라우저, 플랫폼, 디바이스라면 타입스크립트도 문제가 없다. 타입스크립트는 빌트인 TS compiler(tsc)가 따라온다. configuration file인 tsconfig.json을 root directory에 더하면 TS가 부분적인 코드베이스나 전체 앱을 convert하게 해준다.
* altexsoft의 The Good and the Bad of TypeScript를 참고하여 작성된 글입니다.
https://www.altexsoft.com/blog/typescript-pros-and-cons/
* 함께 읽으면 좋은 글
2023.06.11 - [웹개발/혼자하는 개발 공부] - 노마드코더 Typescript 무료 강의 내용
'웹개발 > 혼자하는 개발 공부' 카테고리의 다른 글
REST / RESTful / REST API 란? (2) | 2021.10.07 |
---|---|
[유데미] Jonas Schmedtmann의 The Complete JavaScript Course 2021 후기 (0) | 2021.10.03 |
[자바스크립트] Numbers / Dates / Intl / Timers (0) | 2021.09.16 |
[자바스크립트] Simple Array Methods (0) | 2021.09.16 |
[자바스크립트] IIFE (Immediately Invoked Function Expressions) (0) | 2021.09.16 |