본문 바로가기
반응형

TypeScript란?

TypeScript는 Microsoft에서 개발한 오픈 소스 프로그래밍 언어로, JavaScript의 슈퍼셋이다. TypeScript는 JavaScript의 한계를 보완하고 대규모 애플리케이션 개발을 용이하게 하기 위해 만들어졌다. 

슈퍼셋은 기본 기능에 더해서 추가적인 기능을 제공하는 상위 개념을 말한다.

JavaScript의 한계?

JavaScript는 동적 타입 시스템을 가지고 있어, 변수나 함수의 인자 타입을 명시하지 않고 있다. 이는 간단한 스크립트 작성에는 유연성을 제공하지만, 대규모 애플리케이션 개발에서는 예기치 못한 오류를 발생할 수 있는데, 아래 2가지 예시를 통해 JS의 한계를 확인할 수 있다. 

 

예시 1: 잘못된 타입 전달

아래 코드에서 문자열 "xxxxxx"를 인자로 전달하면, NaN (Not a Number) 오류가 발생하고 있는데 JavaScript는 이러한 타입 오류를 런타임에서야 발견할 수 있다. 

function divide(a, b) {
    return a / b;
}

console.log(divide(2, 3)); // 0.6666666666666666
console.log(divide("xxxxxx", 3)); // NaN

예시 2: 존재하지 않는 메서드 호출

아래 코드에서는 객체 nico에 존재하지 않는 hello 메서드를 호출하려고 시도하여, TypeError가 발생하는데, JavaScript의 동적 타입 시스템과 관련된 또 다른 문제이다. 

const jk = { name: "정규" };
jk.hello(); // Uncaught TypeError: jk.hello is not a function

 

결론

TypeScript는 정적 타입 시스템을 도입하여 컴파일 시점에 타입 검사를 수행함으로써, 런타임 오류를 줄이고 코드의 안정성을 높여준다. 또한, 대규모 프로젝트에서 코드의 유지 보수성을 높이는 데 도움을 줄 수 있다. 

 

TypeScript의 주요 기능

  1. 정적 타입 검사: 변수, 함수 인자, 반환 값 등에 타입을 명시할 수 있다.
  2. 인터페이스와 클래스: 객체의 구조를 정의하고, 객체 지향 프로그래밍을 지원한다.
  3. 개발 도구 통합: 강력한 코드 자동 완성, 리팩토링, 탐색 기능을 제공한다.
  4. 최신 JavaScript 기능 지원: 최신 JavaScript 기능을 사용할 수 있으며, 트랜스파일링을 통해 브라우저 호환성을 유지할 수 있다.

 

해당 글은 노마드코더의 강의를 보고 정리한 내용입니다. 주요 기능들에 대해서는 앞으로 공부하면서 더 적어볼 예정입니다.

 

 

반응형