TypeScript 초보에서 전문가까지

TypeScript는 JavaScript 코드를 더 안전하게 만들어 줍니다. 코드를 실행하기 전에 버그를 찾을 수 있도록 도와줍니다. 이 가이드는 기초부터 고급 개념까지의 과정을 다룹니다.

TypeScript는 JavaScript에 정적 타이핑을 추가합니다. 작성한 코드를 브라우저에서 실행 가능한 일반 JavaScript로 변환합니다.

Basic Types

  • number: 정수 또는 소수
  • boolean: true 또는 false
  • string: 텍스트
  • symbol: 고유 식별자
  • bigint: 큰 정수

Type Annotations 변수를 생성할 때 타입을 정의합니다: let name: string = "Alice"; let age: number = 30;

Arrays and Objects

  • Arrays: let fruits: string[] = ["apple", "banana"];
  • Objects: let user: { name: string; age: number } = { name: "Bob", age: 25 };

Functions 함수의 매개변수와 반환 타입을 지정할 수 있습니다. 함수가 아무것도 반환하지 않는 경우 void를 사용하세요. function greet(name: string): string { return "Hello, " + name; }

Advanced Structures

  • Type Aliases: 타입에 대한 사용자 정의 이름을 정의합니다.
  • Interfaces: 객체의 형태(shape)를 정의합니다.
  • Enums: 이름이 지정된 상수 집합을 생성합니다.
  • Tuples: 요소의 개수가 고정되어 있고 특정 타입을 가지는 배열을 생성합니다.

Complex Logic

  • Union Types: 변수가 하나 이상의 타입을 가질 수 있도록 합니다.
  • Intersection Types: 여러 타입을 하나로 결합합니다.
  • Generics: 다양한 타입에서 작동하는 재사용 가능한 컴포넌트를 생성합니다.
  • Utility Types: Partial 또는 Pick과 같은 내장 도구를 사용하여 타입을 변경합니다.

Best Practices

  • 간단한 별칭(alias)이나 원시 타입(primitive)에는 type을 사용하세요.
  • 객체의 형태를 정의할 때는 interface를 사용하세요.
  • any 사용을 피하세요. TypeScript의 안전성을 저해합니다.
  • 타입을 확신할 수 없을 때는 any 대신 unknown을 사용하세요.
  • 코드가 명확할 때는 컴파일러가 타입을 추론하도록 하세요.

TypeScript는 자신 있게 대규모 애플리케이션을 구축할 수 있도록 도와줍니다.

Source: https://dev.to/miasalazar/from-zero-to-hero-in-typescript-425j