먼저 타입스크립트는 자바스크립트의 문법이 너무 자유롭다보니

선언할 때 타입을 지정하지 않는데, 이러면 동작하면서 개발자가 모르게 형변환이 되어있는 부분이 예상치 못한 오류를 발생시킬 수 있다.

자바스크립트는 동적 타입이라 그 특성상 이런 버그들을 찾기 힘들다보니 타입스크립트를 사용한다면 컴파일 단계에서 에러를 알려줘 이러한 오류를 방지할 수 있다.

타입스크립트에는 자바스크립트와 달리 타입 검사라는게 있는데 이게 뭐냐면

명시적, 추론된 타입을 기반으로 코드를 검사한다.

각 변수, 함수, 객체의 타입을 검사하고 타입이 일치하지 않거나 오류가 있으면 컴파일 단계에서 에러가 발생한다.

interface human {
  name: string;
  age: number;
}

const human: Person = { name: "steve", age: 17 };

이게 만약 타입스크립트 코드라면 컴파일 후엔

const human = { name: "steve", age: 17 };

이렇게 자바스크립트 코드로 변환되는거다.

타입스크립트는 안전성, 생산성, 유지보수성 등 다양한 면에서 장점이 있다.