type Words = {
[key: string]: string;
};
class Word {
constructor(public term: string, public def: string) {}
}
class Dict {
  private words: Words
  constructor() {
    this.words = {}
  }

  add(term: string) {
    if (this.words[term] === undefined) {
      this.words[term] = ''
    }
  }

  get(term: string) {
    if (this.words[term] !== undefined) {
      return console.log(this.words[term])
    }
  }

  delete(term: string) {
    if (this.words[term] !== undefined) {
      delete this.words[term]
    }
  }

  update(term: string, def: string) {
    if (this.words[term] !== undefined) {
      this.words[term] = def
    }
  }

  showAll() {
    return Object.keys(this.words).forEach(ele => console.log(ele))
  }

  count() {
    return console.log(Object.keys(this.words).length)
  }
}

let dict = new Dict()
console.log('start')
dict.add('dog')
dict.update('dog', '개는 왈왈')
console.log('dict',dict)
dict.get('dog')
dict.delete('dog')
console.log('del 이후',dict)
dict.add('cat')
dict.update('cat','고양이도 왈왈?')
dict.add('parrot')
dict.update('parrot','앵무새 시끄러')
dict.showAll()
dict.count()

[TS Playground - An online editor for exploring TypeScript and JavaScript

The Playground lets you write TypeScript or JavaScript online in a safe and sharable way.

www.typescriptlang.org](https://www.typescriptlang.org/play?#code/C4TwDgpgBA6g9gJwCYGcoF4oG8BQBtAawhAC4oVgEBLAOwHMBdMi6+gbhwF8OBjAGwCGKNPGTYcPODRYBXHsEQAKMDIBGfKjyjAICALbNKtOgBooK9ZqhIIAM0Os6ASmycuEwcKgARTcHFQ5tQAbgI6UADuiKhkoqg4gZLSlHIKCIouuIGBwAAWVCgAdFHIaJhYboFuCVACSEiKOvoOxpk1gVS2UI35RSWoeE16DBjomDI0Nra0EEht2dl5BcXRKIO6wxhQAOTb7VCVBzg1dBDAjRst9PPZnd1Lfavr+iMAhGNQE1MzcwELUAgzjIEDQoEkUHA+BBCnw4HQest+mshgwnPtDtVAjYoToLs1yEZrn8Ol0EY9Ss9Nu9xpM7D8bgtsWdoA8VhSUeiapjPmAkGEIHiDATHGYpldnMSoHcyWyBiioNTPrTpjRZgzFr1ZciNiNMFNOVVjoEULk4BEAIJ8PgZSWA4DA0EAeVUACsIPJCkQQCgZUinIVbIgAKICHi5RQQKEYAB8YKkEKhMLhEahTjRhpqkgm53VdodcekkOhsPhzrdHq9PtZfphEHoeXTR2qOOsfi2qoiPj8GQk8aLSfh2woAgQwG2aKQfkKdQa2yQcPHOEnHpkvP5ijnC7M20AODWAFKaoIAJMcPi-B-ZLG+XY5MV4nU9O503dEXV8KTNxT9PfcTF7nkaggAu44AI2vbDefh3h6M4bjwYQvlOq58h+MHXtsgAHNYAiaMAYAI81HoeAD8cGQfUG5gCOCBwGOEHAIUCHrtspEIORKGAK6jgAs3YAEwNQIAO0OACINgA37YR1EmmalrWlRhRZjQOZAA)