Learn TypeScript – Crash Course for Beginners
- TypeScript는 JavaScript의 강력한 정적 타입 슈퍼셋으로, 더 안전하고 유지보수하기 쉬운 코드를 작성하도록 돕습니다. 🛡️
- 컴파일 시점에 타입 관련 오류를 감지하여 런타임 전에 문제를 해결하고 개발 시간을 단축시킵니다. ⏱️
- 높은 산업 수요, 코드 신뢰성 향상, 단위 테스트 감소, 빠른 피드백, 기존 JavaScript와의 원활한 통합, React, Angular 같은 프레임워크 강화 등의 이점이 있습니다. 📈
- TypeScript 코드는 TSC(TypeScript Compiler)를 통해 JavaScript 코드로 트랜스파일됩니다. 🔄
- 기본 설정은 Git, VS Code, NodeJS 설치 후
npm install -g typescript 명령어로 TypeScript를 전역 설치하는 것입니다. 💻
tsconfig.json 파일을 통해 프로젝트의 루트 디렉토리(rootDir)와 컴파일된 JavaScript 파일의 출력 디렉토리(outDir)를 설정하여 컴파일 옵션을 사용자 정의할 수 있습니다. ⚙️
- JavaScript의 기본 타입 외에도
any, unknown, never, enum, tuple과 같은 다양한 타입을 제공합니다. 🧩
- 타입 어노테이션(
: type)을 사용하여 변수, 함수 등의 타입을 명시적으로 지정하는 것이 코드의 견고성과 가독성을 높이는 모범 사례입니다. ✍️
any 타입은 모든 타입의 값을 허용하여 타입 검사를 비활성화하지만, 타입 안전성을 저해하므로 가능한 한 사용을 피해야 합니다. ⚠️
- 함수에서 매개변수와 반환 값의 타입을 명시하고, 선택적 매개변수(
?)나 기본값 매개변수(= defaultValue)를 사용하여 유연한 함수를 정의할 수 있습니다. 🎯
- 나머지 매개변수(
...args: type[])를 통해 함수가 가변적인 수의 인수를 배열로 받을 수 있습니다. 📦
void 타입은 함수가 값을 반환하지 않음을 나타내고, never 타입은 함수가 절대 반환하지 않거나 도달할 수 없는 코드 경로를 나타냅니다. 🚫
- 유니온 타입(
type1 | type2)을 사용하면 변수가 여러 타입 중 하나를 가질 수 있도록 정의할 수 있습니다. 🤝