TypeScript

Type 과 TypeScript

TypeScript는 JavaScript의 모든 기능을 포함하면서, 정적 타입 선언을 추가한 슈퍼셋 언어다. TypeScript는 JavaScript와 달리 브라우저에서 바로 실행될 수 없기 때문에, 컴파일 과정을 거쳐야 한다. 이 과정에서 TypeScript 코드는 순수 JavaScript 코드로 변환되어 브라우저에서 실행될 수 있게 된다. TypeScript의 주요 장점 중 하나는 개발 과정에서의 타입 체크를 통해 버그를 사전에 발견하고, 더 안전하고 정확한 코드를 작성할 수 있게 도와준다는 점이다.

Type System

타입 시스템은 값이 가지고 있는 프로퍼티나 함수를 추론할 수 있는 방법을 제공한다. 이를 통해 개발 환경에서 코드 분석이 가능하며, 에러를 사전에 잡아내는 데 도움을 준다. TypeScript의 타입 시스템은 개발 시간에만 활성화되며, 프로그램의 성능에는 직접적인 영향을 미치지 않는다.

TypeScript를 사용하는 이유

  • 명확한 타입 사용으로 인해 코드의 가독성과 유지 보수성이 향상된다.
  • 컴파일 시점에 타입 체크를 수행하여 실행 전에 버그를 발견할 수 있다.
  • 대규모 프로젝트나 팀 프로젝트에서 코드의 일관성을 유지하는 데 도움을 준다.

TypeScript의 타입들

Primitive Types (원시 타입)

  • string: 문자열 데이터 타입이다.
  • number: 숫자 값 데이터 타입이다.
  • boolean: 논리적인 값인 truefalse를 나타낸다.
  • null: null 하나의 값만을 가지는 타입이다.
  • undefined: 초기화되지 않은 변수의 기본값이다.
  • symbol: 고유하고 변경 불가능한 상수 값을 나타낸다.

Object Types

  • function: 함수 데이터 타입이다.
  • array: 배열 데이터 타입이다.
  • classes: 클래스 데이터 타입이다.
  • object: 객체 데이터 타입이다.

Additional Types

  • tuple: 고정된 길이의 배열 타입이다.
  • any: 어떤 타입의 값도 받을 수 있는 유연한 타입이다.
  • never: 절대 발생할 수 없는 타입을 나타낸다.
  • enum: 열거형 타입으로, 숫자나 문자열 값 집합에 더 쉽게 접근할 수 있게 해준다.
  • void: 주로 함수에서 반환 값이 없을 때 사용되는 타입이다.
  • union: 여러 타입 중 하나가 될 수 있는 값을 나타낸다.

TypeScript의 사용 방식

TypeScript 코드는 .ts 확장자를 사용하며, 컴파일 과정을 통해 .js 파일로 변환된다. TypeScript 컴파일러(TSC)는 명령어 tsc를 사용하여 이 변환 과정을 수행한다.
tsc example.ts
위 명령어는 example.ts 파일을 JavaScript 파일 example.js로 컴파일한다.

타입 주석, 타입 추론, 타입 단언

  • Type Annotation (타입 주석): 개발자가 변수의 타입을 직접 명시하는 방법이다.
  • Type Inference (타입 추론): TypeScript가 코드에서 변수의 타입을 자동으로 추론하는 기능이다.
  • Type Assertion (타입 단언): 개발자가 컴파일러에게 "이 변수의 타입을 나는 알고 있다"고 알려주는 방법이다.
TypeScript는 정적 타입 선언을 통해 JavaScript의 유연함과 안정성을 동시에 제공하는 강력한 도구다. 이러한 특징 덕분에 TypeScript는 현대 웹 개발, 특히 대규모 애플리케이션 개발에 널리 사용되고 있다.