본문 바로가기
프로그래밍/javascript

타입스크립트 정리

by freeelifee 2025. 3. 24.
728x90

TypeScript는 JavaScript의 상위 집합(Superset)으로, 정적 타입을 지원하는 프로그래밍 언어입니다. 주로 JavaScript의 단점을 보완하고, 대규모 프로젝트에서 코드의 안정성과 유지보수성을 높이기 위해 사용됩니다.

1. TypeScript의 특징

✅ 정적 타입(Static Typing)

변수, 함수의 매개변수, 반환값 등에 타입을 명시적으로 지정할 수 있습니다.

컴파일 단계에서 타입 오류를 확인할 수 있어 런타임 오류를 줄일 수 있습니다.


let message: string = "Hello, TypeScript!";
message = 123; // ❌ 오류 발생 (string 타입에 숫자를 할당할 수 없음)

✅ 인터페이스(Interface)

객체의 구조를 정의하는 역할을 합니다.

클래스에서 인터페이스를 구현할 수 있습니다.


interface User {
  name: string;
  age: number;
}

const user: User = { name: "John", age: 30 }; // ✅ 올바른 객체
const invalidUser: User = { name: "Jane" }; // ❌ age 속성이 빠져서 오류 발생

✅ 클래스(Class) 및 접근 제어자

public, private, protected 키워드를 사용하여 접근을 제한할 수 있습니다.


class Person {
  private name: string;

  constructor(name: string) {
    this.name = name;
  }

  getName(): string {
    return this.name;
  }
}

const person = new Person("Alice");
console.log(person.getName()); // ✅ 정상 출력
console.log(person.name); // ❌ private 속성 접근 불가

✅ 제네릭(Generics)

다양한 타입을 지원하는 함수나 클래스를 만들 때 사용합니다.


function identity<T>(arg: T): T {
  return arg;
}

console.log(identity<string>("Hello")); // "Hello"
console.log(identity<number>(123)); // 123

✅ 타입 추론(Type Inference)

타입을 명시적으로 지정하지 않아도, TypeScript가 자동으로 타입을 추론합니다.


let num = 10; // TypeScript가 num을 number로 추론
num = "hello"; // ❌ 오류 발생


---

2. TypeScript 주요 문법

2.1 변수와 타입

let isDone: boolean = false;
let count: number = 10;
let userName: string = "Alice";
let arr: number[] = [1, 2, 3]; // 배열
let tuple: [string, number] = ["hello", 10]; // 튜플
let anything: any = "Can be anything"; // 모든 타입 허용

2.2 함수

function add(x: number, y: number): number {
  return x + y;
}

2.3 유니온 타입(Union Type)

let value: string | number;
value = "Hello"; // ✅ 가능
value = 123; // ✅ 가능
value = true; // ❌ 오류 발생

2.4 타입 별칭(Type Alias)

type ID = string | number;
let userId: ID = "abc123";

2.5 타입 가드(Type Guards)

function isString(value: any): value is string {
  return typeof value === "string";
}

2.6 타입 단언(Type Assertion)

let someValue: any = "This is a string";
let strLength: number = (someValue as string).length;


---

3. TypeScript 환경 설정

3.1 TypeScript 설치

npm install -g typescript

3.2 tsconfig.json 생성

tsc --init

3.3 TypeScript 코드 실행

tsc index.ts  # TypeScript 파일을 JavaScript로 컴파일
node index.js # 실행


---

TypeScript는 코드의 가독성을 높이고, 유지보수성을 강화하는 강력한 도구입니다. JavaScript를 안전하게 확장할 수 있는 기능을 제공하므로, 규모가 큰 프로젝트에서 특히 유용합니다.


728x90

'프로그래밍 > javascript' 카테고리의 다른 글

postman Pre-request script  (0) 2022.10.24
Vue.js 환경설정  (0) 2021.12.09
node.js를 이용한 서버 만들기  (0) 2021.10.08
타임리프 (Thymeleaf) 정리 (2)  (0) 2021.10.07
타임리프 (Thymeleaf) 정리 (1)  (0) 2021.10.06