📝클래스
클래스란?
클래스란 공통된 성질을 가진 객체를 정의한 것이다. 객체지향 프로그래밍에서 인스턴스를 생성하기 위한 변수와 메소드를 정의하는 일종의 틀을 말한다.
자바스크립트와 마찬가지로 타입스크립트에서도 클래스를 생성할 수 있다. 그렇다면 타입스크립트에선 어떻게 클래스를 만들까?
1) 자바스크립트
자바스크립트는 2가지 방식으로 객체를 선언할 수 있다. 생성자 함수와 클래스를 이용한 것이다. 아래 코드를 보자.
// 생성자 함수
function Person(name, year) {
this.name = name;
this.yar = year;
}
// 클래스
class Person {
name;
year;
constructor(name, year) {
this.name = name;
this.year = year;
}
}
첫번째 코드는 생성자 함수를 이용한 것이고 두번째 코드는 class와 생성자 키워드를 이용하여 만든 것이다. 두번째 코드의 경우, 클래스의 속성을 적지 않아도 실행은 잘 되지만 좋은 개발자라면 속성을 적는게 좋다.
2) 타입스크립트
타입스크립트에선 자바스크립트 2번째 방법처럼 class 키워드를 이용하여 클래스를 생성한다. 자바스크립트와 다른 점은 클래스의 속성을 반드시 적어줘야 한다는 점과 각 속성에 타입을 부여해야 한다는 점이다.
class Person {
name: string;
year: number;
constructor(name: string, year: number) {
this.name = name;
this.year = year;
}
protected sayName() {
console.log(`안녕하세요. 저는 ${this.name}입니다.`);
}
}
클래스 접근 제어자
클래스의 타입을 정의할 때 클래스 접근 제어자를 사용하면 클래스 속성의 노출 범위를 정의할 수 있어 유용하다. 클래스 접근 제어자는 public, private, protected가 존재한다.
- public: 클래스 안에 선언된 속성과 메서드를 어디서든 접근할 수 있으며, 클래스 접근 제어자를 설정하지 않을 경우, 기본값은 public으로 설정된다.
- private: 클래스 코드 외부에서 클래스 속성과 메서드를 접근할 수 없다.
- protected: private처럼 외부에서 클래스 속성과 메서드를 접근할 수 없지만 상속받은 클래스에서는 사용할 수 있다.
'타입스크립트(typescript) > 개념' 카테고리의 다른 글
[typescript] 타입스크립트 이넘 (0) | 2024.07.14 |
---|---|
[typescript] 타입 별칭 (0) | 2024.07.13 |
[typescript] 연산자를 사용한 타입 정의 (0) | 2024.07.12 |
[typescript] 인터페이스(Interface) (0) | 2024.07.11 |
[typescript] typescript의 타입과 정의 (0) | 2024.07.09 |