728x90
static 사용하기
static키워드는 메모리에 멤버를 항상 상주하게 해주는 키워드이다. 그래서 클래스로 초기화하지 않아도 바로 사용할 수 있으며 모든 객체들이 같은 멤버(함수) 를 참조하게 된다.
class Person {
private static CITY = "Seoul";
public static hello() {
console.log("안녕하세요", Person.CITY);
}
}
const p1 = new Person();
Person.hello();
Singleton Pattern구현하기
싱글톤패턴은 같은 객체를 사용하기 위해 필요한 객체이다.
자세한 부분 -
class ClassName {
private static _INSTANCE: ClassName | null = null;
private constructor() {};
public static getInstance() {
if(ClassName._INSTANCE === null) {
ClassName._INSTANCE = new ClassName();
}
return this._INSTANCE;
}
}
const a = ClassName.getInstance();
const b = ClassName.getInstance(); // a와 b는 같다.
상속
부모의 멤버를 사용하기 위해서는 super키워드를 통해 자신의 부모까지 초기화 한 후 부모의 함수를 옳게 사용 할 수 있다.
class Parent {
constructor(protected _name: string, private _age: number) {}
public print(): void {
console.log(`이름은 ${this._name}`);
}
protected printHello(): void {
console.log(this._name);
}
}
class Child extends Parent {
constructor(protected _name: string, _age: number) {
super(_name, _age);
this.printHello();
}
}
Abstract Classes
완전하지 않은 클래스를 정의한 후 자식 클래스에서 재정의해 사용한다.
- class앞에 abstract라는 키워드를 붙여주어야 한다.
- function앞에 abstract 키워드를 붙여주어 Overriding해야함을 명시한다.
abstract class AbstractPerson {
protected _name: string = 'Mark';
abstract setName(name: string): void;
}
class Person extends AbstractPerson {
setName(name: string): void {
this._name = name;
}
}
728x90
'FrontEnd > TypeScript' 카테고리의 다른 글
Generics (0) | 2022.10.10 |
---|---|
Class 정의 / 초기화 / Getter And Setter (0) | 2022.10.08 |
Interface (0) | 2022.10.07 |
TypeScript 컴파일러 (0) | 2022.09.28 |
TypeScript 타입호환성 (0) | 2022.09.27 |
댓글