TypeScript

JavaScript 와 TypeScript

dlwltn98 2023. 1. 25. 15:35

안정성(타입의 안정성) 때문에 많은 사람들이 JavaScript를 두고 TypeScript로 넘어간다고 함

  • 타입의 안정성 ⇒ TypeScript의 가장 큰 장점
    • 버그
    • 런타임 에러
    • 생산성 향상 등 다양한 이점이 있음

 

JavaScript


  • 매우 유연한 언어
  • 타입을 가지고 이상한 코드가 실행 가능
[1,2,3,4] + false

*******************result*******************
'1, 2, 3, 4false'
 → 배열이 사라지고 boolean type과 함께 String 으로 변해버림
function divide(a, b) {
    return a / b
}

*******************result*******************
divide (2, 3)
0.6666666

// 자바 스크립트는 함수를 올바르게 사용하도록 강제하지 않음
divide ("xxxxx")
NaN   // 코드의 실행을 막아주지도 않음
  • 런타임 에러
    • 콘솔 안에서 일어나는 에러
    • 코드가 실행 될 때만 일어나는 에러일 수도 있음
    const jisu = { name:"jisu" }  // 객체 생성
    jisu.hello()
    
    // result
    // 유저의 컴퓨터에서 코드가 실행되면 나타나는 에러
    Uncaught TypeError : jisu.hello is ... not a function ...
    

 

 

TypeScript


  • strongly typed 프로그래밍 언어
  • 작성한 코드가 자바스크립트로 변환 됨
    • 이유 : 브라우저가 타입스크립트가 아니라 자바 스크립트를 이해하기 때문
    • node.js는 TypeScript, JavaScript 둘 다 이해 가능

 

  • 컴파일 → 작성한 TypeScript 코드를 일반적인 JavaScript  코드로 바꿔줌
    • TypeScript  코드에 에러가 있으면 그 코드는 JavaScript  로 컴파일 되지 않음
    • TypeScript 가 먼저 우리의 코드를 확인한 다음 변환된 JavaScript  안에서 실수가 일어나지 않게 확인해줌

 

 

** JavaScript와 비교 **

  • JavaScript 에선 실행 후 런타임 에러가 발생했지만 TypeScript 에선 실행 전 오류 발생

 

  • JavaScript 에선 실행 되었지만 TypeScript 에선 실행전 오류 발생

 

 

 

 

출처 :

https://www.typescriptlang.org/

https://www.typescriptlang.org/play