* JavaScript는 제공하지 않는 기능들
private, public
class Player {
constructor(
private firstName:string,
private lastName:string,
public nickname:string
) {}
}
const seojin = new Seojin("seojin", "moon", "문");
seojin.firstName # error
seojin.nickname
abstract 클래스, abstract 메소드(클래스 안의 함수)
abstract class User {
constructor(
constructor(
private firstName:string, # private property는 상속받는 클래스에서도 사용 불가
private lastName:string,
protected nickname:string # protected property는 상속받는 자식 클래스에서는 사용 가능
) {}
abstract getNickName(): void # 반드시 상속받는 클래스에서 구현해야 함
getFullName(){
return `${this.firstName} ${this.lastName)`
}
}
class Player extends User {
getNickName() {
console.log(this.nickname)
}
}
const seojin = new User("seojin", "moon", "문") #error, abstract 클래스는 직접 인스턴스 생성 불가능
const seojin = new Player("seojin", "moon", "문")
Recap
type Words = {
[key:string]: string #key 대신 다른 거 써도 ㄱㄴ
}
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) {
return this.words[term]
}
}
class Word {
constructor(
public term: string,
public def: string
) {}
}
'Web > TypeScript' 카테고리의 다른 글
[TypeScript] Interfaces (0) | 2024.07.07 |
---|---|
[TypeScript] 다형성(Polymorphism) (0) | 2024.07.05 |
[TypeScript] 기본 문법 - 함수 (1) | 2024.07.05 |
[TypeScript] 기본 문법 - Type (1) | 2024.07.04 |
[TypeScript] 를 쓰는 이유 (0) | 2024.07.04 |