1. JavaScript는 Dynamic Typing이 가능(유연) 하지만 TypeScript는 엄격함


ex) JavaScript

let variable = 5-"3"; // 2

[1,2,3,4] + true; // '1,2,3,4true'

// 엄청 이상함!
// but
// JavaScript에서는 에러가 나지 않음 => 안정적이지 않다!

⇒ JavaScript는 유연하지만 프로젝트가 커지면 단점이 됨

ex) TypeScript

let variable = 5-"3";

// TypeScript에서는 에러가 난다

2. 에러메시지가 정확해짐


let obj = {
  score : 100;
}

obj.scoer 

// Property `scoer` does not exit on type ` ...
// Did you mean `score`?

3. 런타임 에러


const employee = {name : 'james'}

employee.hire(); // error (자바스크립트는 에러가 날 거라는 걸 몰라서 그냥 코드를 실행시킴)

// 타입스크립트에서는 위 함수가 실행되기 전에 실행시키지 않는다. 
// => vscode가 이 코드를 실행하면 런타임 에러가 날거라고 경고한다.
// 코드가 실행되기 전에 미리 에러를 발견하고 싶으면 TypeScript로!