해시맵 만들기. 사전 같은 거.
해싱 알고리즘을 쓰는 완벽한 해시맵이 될 거고 단어 사전을 만들어 보자.
type Word = {
[key:string]: string
}
// 예시
let dict :Words = {
"potato": "food"
}
property의 이름은 모르지만, 타입만을 알 때 사용한다.
제한된 양의 property 혹은 key를 가지는 타입을 정의해 주는 방법으로 object의 type을 선언 해야할 때 쓸 수 있다.
이 object는 제한된 양의 property만을 가질 수 있고 property에 대해서는 미리 알진 못하지만 타입만 알고 있을 때 쓰면된다.
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) {
return this.words[term]
}
// 단어 삭제
del(term:string) {
delete this.words[term]
}
// 업데이트
update(key:string, newTerm:string) {
this.words[key] = newTerm
}
}
class Word {
constructor(
public term:string,
public def :string,
) {
// 단어의 정의를 추가하거나 수정하는 메서드, 단어를 출력하는 메서드
}
}
const kimchi = new Word("kimchi", "한국의 음식");
const dict = new Dict()
dict.add(kimchi)
dict.def("kimchi")