TypeScript

H802·2024년 10월 31일

📘 TypeScript

  • 웹 개발에 주로 많이 사용되는 자바스크립트(JavaScript)를 기반으로 한 프로그래밍 언어

  • 정적 타입(Type System) 지원, 더 안전하고 유지보수 용이한 코드 작성 가능


📘 주요 특징

1. 변수의 데이터 타입 지정 가능 (오류 미리 예방)

let age: number = 15; // age는 숫자
let name: string = "Alice"; // name은 문자열, Alice는 초기값

2. 자바스크립트와 호환

3. 객체지향 프로그래밍 지원

: 클래스와 인터페이스와 같은 개념을 통해 객체지향프로그래밍 구현

class Person {
    constructor(public name: string, public age: number) {}
}

4. 많은 통합 개발 환경(IDE)에서 타입스크립트를 지원하여 개발 생산성이 향상됨

5. 대규모 애플리케이션에 적합


📘 인터페이스 (Interface)

  • 객체가 가져야 할 속성과 그 타입을 정의하는 일종의 설명서
  • 동작 코드는 포함되어 있지 않음

📘 클래스 (Class)

  • 객체를 만들기 위한 청사진(설계도)
  • 실제 동작할 수 있는 코드 작성 가능
 interface Animal { // 인터페이스(설명서)
    name: string; // 속성
    sound(): void; // 메소드
}

class Dog implements Animal { // Dog라는 클래스가 
    name: string;

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

    sound() {
        console.log("Woof!"); // 인터페이스의 메소드를 구현
    }
}
  • class Dog implements Animal
    : Dog 라는 클래스가 Animal 인터페이스를 구현한다(따른다) 라는 의미
    ❗❗ Animal의 인터페이스에 정의한 모든 속성+메소드 반드시 구현해야함!
class Dog {
    name: string; // 속성 선언

    constructor(name: string) { // 생성자에서 name 매개변수 받기
        this.name = name; // this.name: 객체의 name 속성에 매개변수 값 할당
    }
}

const myDog = new Dog("Buddy"); // myDog라는 새로운 객체 생성
console.log(myDog.name); // "Buddy"
  • new 키워드를 사용시, Dog 클래스의 생성자(constructor)가 자동으로 호출
profile
배운 내용 정리하기 위해 쓰는 블로그

0개의 댓글