타입스크립트 기본 개념에 대해서 학습을 했고, 이제는 직관적으로 타입스크립트는 이런 것이다라고 알 수 있는 클래스와 인터페이스, 제너릭 등에 대해 공부함 (사실 기본서 2장에 포함된 내용이지만 두 번으로 나누어 학습)
클래스 Class
객체 만드는 공장으로 생각하고 있었음. (자바스크립트)
필드와 메서드의 컨테이너이고 인스턴스를 만들고 재사용할 수 있다.
타입스크립트 클래스는 자바스크립트에서 지원되지 않는 캡슐화 기능을 추가로 제공한다.
접근 제어자 (private, readonly, protected 등)
게터와 세터 (계산된 속성)
정적 속성(static)
(특정 상황에 따라 클래스 인스턴스들 사이에 데이터를 공유해야 할 수 있기 때문에 정적 멤버를 사용한다.)
인터페이스 Interface
규칙의 집합
타입에 대한 합의된 규칙을 설정하는 방식
interface 이름 {
예시1: 타입;
예시2: 타입;
함수: () => string
}
상속
객체지향 프로그래밍에서 상속은 코드를 재사용하기 위한 방법
abstract class 이름 {
constructor() {}
abstract 함수(매개변수: 타입): 타입;
}
제네릭
작성한 사람에 의해 타입이 정해지는 것이 아니라 해당 제네릭 타입을 사용하는 사람이 선택한 타입으로 타입을 정의할 수 있다.
제네릭에 대해서는 좀 더 공부를 해야할 것 같다. (강의로 보충할 예정)