상추의 IT저장소
TS)Class 본문
Class
- 객체 지향 프로그래밍(OOP)에서 특정 객체를 생성하기 위해 변수와 메소드를 정의하는 일종의 틀(template)이다. 객체를 정의하기 위한 메소드와 변수로 구성된다. by 위키백과
- ES6 에는 기존의 객체 지향 언어와 비슷하게 클래스를 선언할 수 있는 class 키워드가 추가 되었다.
- typescript의 클래스는 ES6 클래스의 상위집합으로, ES6 클래스를 포함할 뿐 아니라 추가기능을 제공한다.
생성자
- constructor 키워드를 사용해 클래스 생성자를 정의 할 수 있다.
- 클래스 생성자를 통해 클래스 인스턴스가 생성될 때, 실행될 로직을 정의 할 수 있다.
속성
- 객체 속성과 유사하게 클래스 인스턴스도 속성을 가질 수 있다.
- 클래스 내에서는 속성엔 this 키워드를 이용하여 접근이 가능하다.
- 모든 클래스 속성은 이름 : 타입 형식으로 속성선언을 통해 타입을 표기해주어야한다.
- 클래스 속성에도 기본값을 제공 할 수 있다.
읽기 전용 속성
- readonly 키워드를 사용해 읽기 전용 속성을 정의 할 수 있다.
- 속성 선언 또는 생성자 외의 장소에서는 읽기 전용 속성에 할당 할 수 없다.
메소드
- 객체의 단축 메소드명과 유사한 문법을 사용해 인스턴스의 메소드를 정의 할 수 있다.
- 메소드 내에서는 this 키워드를 사용해 해당 메소드가 호출되는 인스턴스를 참조 할 수 있다.
- 함수를 속성으로 정의한 경우엔 별도의 속성 선언을 생략 할 수 있다.
접근제어자
접근 제어자를 활용하여 인스턴스의 멤버에 대한 접근 권한을 지정할 수 있다.
public
- public은 접근 제한이 전혀 존재하지 않으며, 프로그램의 어느 곳에서나 접근 가능하다. 접근 제어자가 명시되지 않은 멤버는 모두 암시적으로 public 접근 권한을 갖는다.
private
- 비공개로 설정하려는 속성은 private로 설정하여 해당 클래스 내부의 코드만이 접근 가능하다.
- 만약 클래스 바깥에서 private 멤버에 접근하려 할 시 에러가 발생한다.
- private 멤버의 접근 제한은 서브클래스에도 적용된다.
protected
- protected 권한의 멤버는 private과 비슷하게 동작하지만, 서브클래스에서의 접근 또한 허용된다.
예시) UserInfo 클래스를 형성하고 constructor 로 생성자 정의한 코드
class UserInfo {
public name :string;
public age : number;
private _city : string;
constructor(name : string, age:number, city:string) {
this.name = name;
this.age = age;
this._city = city;
}
}
참조 : https://ahnheejong.gitbook.io/ts-for-jsdev/
자바스크립트 개발자를 위한 타입스크립트 - ts-for-jsdev
『자바스크립트 개발자를 위한 타입스크립트』는 타입스크립트 입문서입니다. 하지만 프로그래밍을 처음 시작하는 독자가 읽을 것을 염두에 두고 쓰진 않았습니다. 저와 같이 자바스크립트를
ahnheejong.gitbook.io
'Javascript > TypeScript' 카테고리의 다른 글
| TS) 추상 클래스 (Abstract class) (0) | 2023.01.27 |
|---|---|
| TS) 타입 단언(Type Asssertion) (0) | 2023.01.27 |
| TS) generic (0) | 2023.01.23 |
| TS) 타입 지정 (0) | 2023.01.23 |
| TS) TS설치 & tsconfig.json 만들기 (0) | 2023.01.17 |