타입스크립트란, 자바스크립트를 기반으로 정적 타입 문법을 추가한 프로그래밍 언어다.
자바스크립트는 동적 타입의 인터프리터 언어로 런타임에서 오류를 발견할 수 있습니다. 이에 반해 타입 스크립트는 정적 타입의 컴파일 언어
이며, 타입스크립트 컴파일러 또는 바벨을 통해서 자바스크립트 코드로 변환된다.
코드 작성 단계에서 타입을 체크해 오류를 확인할 수 있고 미리 타입을 결정하기 때문에 실행 속도가 매우 빠르다는 장점이 있다. 하지만 코드 작성 시 매번 타입을 결정해야 하기 때문에 번거롭고 코드량이 증가하며 컴파일 시간이 오래걸린다는 단점이 있다.
타입스크립트는 자바스크립트의 슈퍼셋, 즉 자바스크립트 기본 문법에 타입스크립트의 문법을 추가한 언어이다.
따라서 유효한 자바스크립트로 작성한 코드는 확장자를 .js에서 .ts로 변경하고 타입스크립트로 컴파일해 변환할 수 있다.
타입스크립트는 ES6(ECMAScript 6)에서 새롭게 사용된 문법을 포함하고 있으며 클래스, 인터페이스, 상속, 모듈 등과 같은 객체 지향 프로그래밍 패턴을 제공한다.
TypeScript | JavaScript |
---|---|
정적타입 언어 | 동적타입 언어 |
컴파일 언어 | 인터프리터 언어 |
자바스크립트에 의존적임 (자바스크립트로 컴파일된 후 실행) | 독립적으로 사용가능 |
더 나은 구조, 간결함, 일관성, 재사용성 | 타입에 제한받지 않으므로 조금 더 유연함 |
.ts 확장자 | .js 확장자 |
복잡한 프로젝트에 적합 | 작고 간단한 프로젝트에 적합 |
TypeScript는 JavaScript를 기반으로 정적 타입 문법을 추가한 컴파일 언어이다.
기존 인터프리터 언어인 JS는 컴파일 과정을 거치지 않아, 런타임에서 에러가 발견되지만, TS의 경우는 컴파일 과정에서 타입을 지정하기 때문에 에러를 예방할 수 있으며, 쉬운 디버깅이 가능하고 개발과정에서 오류를 사전에 방지할 수 있어 안정성이 높다.
소스코드를 기계어로 번역하는 과정에서 인터프리터 언어에 비해(JS) 시간이 오래 걸린다는 단점이 있다. 하지만 런타임 상황에서는 모든 소스코드가 변환되어 있기에 빠르게 실행할 수 있다
라인이 늘어나 가독성이 떨어질 수 있으며, 만약 다양한 타입을 사용하지 않고 any type만 사용한다면 사용성의 의미가 사라지게 된다.