- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- CRUD
- First Project
- TIL
- CSS
- LEVEL 1
- react
- 프로그래머스
- LEVEL 2
- 알고리즘
- TMIL
- 코어 자바스크립트
- 배포
- 리팩터링 2판
- mongodb
- LEVEL1
- Err-Handling
- 오늘도 개발자가 안된다고 말했다
- sql
- 아고라스테이츠
- Git
- TWIL
- typescript
- Docker
- javascript
- MariaDB
- Refactoring
- 코딩테스트
- java
- 에러핸들링
- 면접을 위한 cs 전공지식 노트
Archives
성장에 목마른 코린이
TypeScript 7. Classes Recap + 챌린지 본문
728x90
type Words = {
// object의 Type을 선언해야할 때
[key:string] : string, // Words 타입이 string만을 property로 가지는 오브젝트라고 말해줌
}
class Dict {
public words:Words // words를 initializer 없이 선언
constructor() {
this.words = {} // Constructor에서 수동으로 초기화 시켜줌
}
add(word:Word) { // Word 클래스를 타입처럼 사용 가능
if(this.words[word.term] === undefined) {
this.words[word.term] = word.def;
}
}
delete(word:Word) { // Word 클래스를 타입처럼 사용 가능
if(this.words[word.term].includes(word.def)) {
delete this.words[word.term];
}
}
update(word:Word) { // Word 클래스를 타입처럼 사용 가능
if(this.words[word.term]) {
this.words[word.term] = word.def;
}
}
}
class Word {
constructor (
public term : string,
public def : string,
){}
modifyDef(word:string) {
this.def = word;
}
printWord(){
return console.log(this);
}
}
const kimchi = new Word("kimchi", "한국의 음식");
kimchi.modifyDef("김치")
kimchi.printWord;
const dict = new Dict();
dict.add(kimchi);
console.log(dict.words);
dict.update(kimchi);
console.log(dict.words);
dict.delete(kimchi);
console.log(dict.words);
'TypeScript' 카테고리의 다른 글
TypeScript 9. Interfaces part 2 (0) | 2022.08.01 |
---|---|
TypeScript 8. Interfaces part 1 (0) | 2022.08.01 |
TypeScript 6. Classes: abstract class, method, public, private, protected (0) | 2022.07.30 |
TypeScript 5. Generic (0) | 2022.07.30 |
TypeScript 4. Call Signature (0) | 2022.07.30 |
Comments