728x90
반응형
클래스 생성
class User {
constructor (
private firstName: string,
private lastName: string,
private nickname: string
){}
}
추상 클래스 - abstract
abstract class User { // 추상 클래스
constructor (
private firstName: string,
private lastName: string,
protected nickName: string // protected로 해야 자식 클래스에서 접근 가능
){}
abstract getNickNmame(): void; // 추상 메소드, 상속받은 클래스에서 반드시 정의해야 함
getFullName() {
return `${this.firstName} ${this.lastName}`;
}
}
class Player extends User {
getNickNmame() {
console.log(this.nickName);
}
}
const honey = new Player("honey", "bee", "꿀벌");
const test = new User("honey", "bee", "꿀벌"); // Error, 추상 클래스는 객체 생성 불가
honey.getFullName();
복습
type Words = {
[key: string]: string
}
class Dict {
private words: Words;
constructor() {
this.words = {}
}
add(word: Word) {
if(this.words[word.term] === undefined)
this.words[word.term] = word.def;
}
def(term: string): string {
return this.words[term];
}
}
class Word {
constructor(
public term: string,
public def: string
) {}
}
const kimchi = new Word("kimchi", "한국의 음식");
const dict = new Dict();
dict.add(kimchi);
dict.def("kimchi");
readonly
//class 멤버를 보여주고 싶지만 수정은 못하게 하고 싶을 때 사용
class Word {
constructor(
public readonly term: string,
public readonly def: string
) {}
}
const kimchi = new Word("kimchi", "한국의 음식");
kimchi.term = "xxx"; // Error
static
반응형
'언어 > TypeScript' 카테고리의 다른 글
undefined value 처리법 (0) | 2024.03.31 |
---|---|
함수 Overloading & 다형성 (0) | 2023.10.30 |
함수 (1) | 2023.10.30 |
타입 명시 (1) | 2023.10.29 |
인터페이스 (0) | 2023.10.29 |