TypeScript는 왜 필요할까 ?
JS 코드가 너무 지저분하다.
코드 스케일이 커지면서 코드 관리가 되지 않는다.
여러 사람들이 견고하지 않은 언어를 이용해서 협업을 하다보니 지저분한 코드들이 발생한다.
협업시 수많은 버그들이 발생된다. > 디버깅 환경이 빈약하다.
TypeScript의 장점 !
코드를 깔끔하게 정리할 수 있다.
어떻게 ? > Type을 명시함으로써 애매모호했던 코드들을 걷어낼 수 있다.
가독성 높아짐 > 퀄리티 높아짐 > 클린 코드에 가까워진 코드들을 생산할 수 있다 > 유지/보수가 쉬워진다. 선순환 !
TypeScript = JavaScript + Type Check !
TS 환경에 JS를 코딩하면 동작함.
JS 환경에 TS를 코딩하면 동작 안 함.
JS는 TS의 범주 안에 존재한다 !
Data Type Check
JS는 변수는 종이컵과 같다 > 액체를 담기에는 편하지만 내용물이 무엇인지 정확하게 알 수가 없다.
TS의 변수는 투명페트병과 같다. > 내용물이 무엇인지 정확하게 보이고, 뚜껑을 닫음으로써 안전하게 보관할 수 있다.
- JS는 변수의 Data Type을 정확히 명시하지 않는다. ex) var -> 대입되는 값에 따라 변수의 type 달라진다
- TS는 변수에 Data Type을 명확하게 지정하여 안정성을 높여준다. ex) int, double -> 변수 type 고정
Data Type을 표기하면 좋은 점
- 객체 지향 프로그래밍의 특성을 지원한다.
- 클래스, 인터페이스, 컨스트럭터, 접근 지정자 등 객체 지향의 프로그래밍 특성을 지원
- TS를 이해하면 JS에 객체 지향 코드를 적용할 수 있다.
function Plus(a : number, b : number) {
return a + b;
}
console.log(Plus(3, 5));
a, b의 type을 명시하여 해당 변수의 데이터 타입을 유추할 수 있다.
즉, a,b에 number가 아닌 다른 데이터 타입(문자열 등)이 들어오게 되면 바로 에러로 인식 > 에러를 발견할 수 있게 된다.
하지만, 만약 해당 함수가 js로 작성된 것이라면 a, b의 데이터 타입이 문자열로 들어오게 되어도 에러로 인식하지 않음.
우리가 의도한대로 작동하지 않아도 에러가 나지 않는다는 것 !