✔️ 타입스크립트는 자바스크립트의 상위 집합이다.
✔️ 타입스크립트는 타입이 정의된 자바스크립트의 상위집합이다.
이 문장들이 어떤 의미인지, 타입스크립트와 자바스크립트는 어떤 관계를 갖고 있는지 자세히 알아보도록 하자! 더 나아가 타입스크립트를 왜 써야 하는지 정리해보도록 하자👍
타입스크립트는 자바스크립트에 정적 타입 시스템을 부여한 언어이다. 자바스크립트에서 확장된 언어로, 자바스크립트로 컴파일되며, 실행 역시 자바스크립트로 실행된다.
TS
와 JS
는 서로 전혀 다른 언어가 아니고, 둘의 관계는 필연적이다.🤝
앞서 설명했듯이 타입스크립트는 자바스크립트에 정적 타입 시스템을 부여한 언어이다.
타입 시스템은 런타임 시 발생하는 타입 오류를 실행 전에 발견하여 방지한다. (이러한 특징으로 정적 타입 시스템이라고도 한다.)
const city = "new york city"; // 타입 추론
console.log(city.toUppercase());
// 'toUppercase' 속성이 'string' 형식에 없습니다. (빨간줄 생김)
// 'toUpperCase'를 사용하겠습니까?
interface State {
name: string;
capital: string;
}
const state: State = {name: "Alabama", capitol: "Montgomery"}; // 타입 구문
// 'State' 형식에 'capitol'이 없습니다. 'capital'를 쓰려고 했습니까?
하지만 타입 시스템이 모든 오류를 찾아내는 것은 아니다. 타입 체커를 통과하면서도 런타임 시에 타입 에러가 발생할 수 있다.
const names = [ "Alice", "Bob" ];
console.log(names[2].toUpperCase()); // indexOutOfBounds
// 프로그램 실행 -> TypeError: Cannot read property 'toUpperCase' of undefined
타입스크립트는 names
배열이 범위 내에서 사용될 것이라 가정했지만 실제로는 그렇지 않았고, 에러가 발생했다.
타입을 지정하는 것만으로도 코드의 품질이 향상되고 개발 생산성을 높일 수 있다. 😊