Language/JavaScript + TypeScript

JavaScript와 TypeScript는 어떤 차이가 있을까?

깨구르르 2024. 11. 14. 23:59
728x90

JavaScript만 사용하며 개발을 진행하던 나날이 이어졌는데

TypeScript를 쓰시는 분을 보고, TypeScript와 JavaScript와의 차이점이 궁금해졌다.

따라서 둘의 차이점을 작성하고,

앞으로 상황에 맞는 언어를 쓰기 위해 이 글을 작성한다.

 


 

차이점

가장 큰 차이는 이름에서도 유추할 수 있듯이 type의 유무이다.

Java를 예로 들자면 변수 선언 시 변수 앞에 붙는 char int long String 같은 게

JavaScript는 없고, TypeScript는 있다는 것이다.

코드를 보면서 이해해보자.

 

// JavaScript
var a = 1
var b = 2

var c = a + b

위처럼 JavaScript는 변수를 선언할 때 자료형을 명시하지 않는다.

// TypeScript
var a: number = 1
var b: number = 2

var c: number

c = a + b

하지만 TypeScript는 'number'라는 자료형을 명시하였다.

기본적으로 타입스크립트로 할 수 있는 것은 자바스크립트로도 할 수 있고,

타입스크립트는 자바스크립트보다 익혀야 할 게 더 많은데 왜 타입스크립트를 사용할까?

 


 

TypeScript의 등장 이유

JavaScript는 속도가 빠르고 단순하다는 장점이 있지만,

이 장점이 단점이 되기도 했다.

ES6 이전 기준으로 자바스크립트는

코드를 최대한 실행하는 것이 원칙이기 때문에

문제가 될 수 있는 코드도 되도록 실행하는 단점이 있었다.

아래 예제들을 통해 살펴보자.

 

첫 번째 문제점

// 예제1
var name = "home"
console.log(name)	// "home"
var name = "sleep"
console.log(name)	// "sleep"

원래 변수라고 하는 것은 값을 구분하기 위해 사용되는 고유번호,

주민번호 같은 것이기 때문에 다시 선언할 수 없어야 한다.

그런데 위 예제를 보면 var은 변수를 다시 선언해도 아무런 에러가 뜨지 않는다.

위 코드를 ES6부터 등장한  let이나 const로 바꿔서 작성해보면 콘솔창에

Uncaught SyntaxError: Identifier 'name' has already been declared

라는 오류가 뜬다. 이게 정상적인 로직이다.

 


 

각각 언제 써야 할까?

 

 


 

참고

  1. 자바스크립트와 타입스크립트 차이점
  2. [typescript vs javascript] 어떤 언어를 써야할까? 이 글로 종결하자!
  3. Typescript가 나오게 된 이유

 

728x90