TypeScript 참고서: 핵심 개념 및 최고의 실천 방법 마스터하기

설치, 실행, 유형, 클래스, 모든 기초 내용

Page content

이 문서는 개발자들이 자주 참조하는 핵심 개념, 구문, 코드 예제를 포함한 제작한 TypeScript 체크리스트입니다:

typescript cheatsheet 3d

TypeScript 체크리스트

시작하기

  • 전역 설치:
    npm install -g typescript
    
  • 파일 컴파일:
    tsc filename.ts
    
  • 버전 확인:
    tsc --version
    

기본 타입

let a: number = 10;
let s: string = "TypeScript";
let b: boolean = true;
let arr: number[] = [1, 2, 3];
let tuple: [string, number] = ["TS", 2025];
let anyValue: any = "유연한";
let unknownVal: unknown = 5;
let notDefined: undefined = undefined;
let notPresent: null = null;

연합 및 리터럴 타입

let id: number | string = 42;
let direction: 'left' | 'right' = 'left';

타입 별칭 및 인터페이스

type Point = { x: number; y: number };
interface Person { name: string; age: number; }
let user: Person = { name: "Alice", age: 25 };

함수

function sum(a: number, b: number): number {
  return a + b;
}
const multiply = (a: number, b: number): number => a * b;
function log(msg: string): void { console.log(msg); }

클래스

class Animal {
  name: string;
  constructor(name: string) { this.name = name; }
  move(distance: number = 0): void { console.log(`${this.name} moved ${distance}`); }
}

접근 제한자

  • public (기본값), private, protected, readonly
class Point {
  constructor(private x: number, private y: number) {}
}

제네릭

function identity(arg: T): T { return arg; }
let output = identity("myString");

열거형

enum ResourceType { BOOK, FILE, FILM }
let r: ResourceType = ResourceType.BOOK;

타입 단언 / 캐스팅

let someVal: unknown = "Hello";
let strLength: number = (someVal as string).length;

모듈

// 내보내기
export function foo() {}
// 가져오기
import { foo } from "./module";

고급 타입

  • 교차 타입:
    type A = { a: number }; type B = { b: number };
    type AB = A & B; // { a: number, b: number }
    
  • 조건 타입:
    type IsString = T extends string ? true : false;
    
  • 매핑 타입:
    type Readonly = { readonly [P in keyof T]: T[P]; }
    
  • 템플릿 리터럴 타입:
    type EventName = `on${Capitalize}`;
    

유용한 유틸리티 타입

Partial, Required, Readonly, Pick, Omit, Record

타입 좁히기

  • typeofinstanceof를 사용하여 타입을 좁히세요:
function padLeft(value: string, padding: string | number) {
  if (typeof padding === "number") {
    return Array(padding + 1).join(" ") + value;
  }
  return padding + value;
}

이 요약은 대부분의 TypeScript 개발 워크플로우에 필수적인 핵심 구문과 기능을 제공합니다.

유용한 링크