Typescript가 뭐지...?
타입스크립트는 자바스크립트의 슈퍼셋인 오픈소스 프로그래밍 언어이다. 마이크로소프트에서 개발, 유지하고 있으며 엄격한 문법을 지원한다. C#의 리드 아키텍트이자 델파이, 터보 파스칼의 창시자인 Anders Hejlsberg가 개발에 참여한다. 클라이언트 사이드와 서버 사이드를 위한 개발에 사용할 수 있다. 타입스크립트는 자바스크립트 엔진을 사용하면서 커다란 애플리케이션을 개발할 수 있게 설계된 언어이다.자바스크립트의 슈퍼셋이기 때문에 자바스크립트로 작성된 프로그램이 타입스크립트 프로그램으로도 동작한다. 타입스크립트에서 자신이 원하는 타입을 정의하고 프로그래밍을 하면 자바스크립트로 컴파일되어 실행할 수 있다. 타입스크립트는 모든 운영 체제, 모든 브라우저, 모든 호스트에서 사용 가능한 오픈 소스이다. - 위키 백과
위의 글은 위키 백과에 나와있는 TypeScript에 대한 설명이다.
내가 생각하는 핵심만 뽑자면
이렇게 두 개의 내용으로 요약할 수 있을 것 같다
자바스크립트의 슈퍼셋 언어이다
개인적인 생각으로는 타입스크립트는 언어라기 보다는 너무나도 유연한 자바스크립트의 에러를 사전에 방지해주는 장치라는 느낌이 든다. 왜냐하면 실행시에는 타입스크립트가 아닌 자바스크립트로 컴파일 하여 실행하기 떄문이다.
원하는 타입을 지정할 수 있다
타입스크립트에는 타입을 지정할 수 있게 되는데 이러한 기능으로 런타임 이전에 예상치 못한 에러가 발생하는 것을 어느정도 막아줄 수 있다. (모든 오류를 잡아내지는 못하지만 이것만으로도 런타임 오류가 발생하는 확률이 크게 낮아진다.)
function sum(a,b) {
return a+b;
}
sum("x", "y"); // "xy"
sun(1, "y"); //"1y"
위의 코드 같은 경우는 숫자형과 문자형의 데이터를 더하는 어이없는 코드이지만 자바스크립트에서는 정상적으로 작동이 된다.
이러한 상황은 대부분 예상치 못한 에러일 가능성이 높기 때문에 TypeScript에서는 타입을 지정하여 이러한 일을 막아준다.
function sum(a: number, b: number) {
return a+b;
}
sum("x", "y"); // "error"