Typescript-Polymorphism

January·2022년 7월 29일
0

제네릭, 다형성, 클래스와 인터페이스 활용 예제

interface SStorage<T> {
  [key: string]: T
}
class LocalStorage<T> {
  private storage: SStorage<T> = {}
  set(key: String, value: T) {
    this.storage[key] = value
  }
  remove(key: string) {
    delete this.storage[key]
  }
  get(key: string): T {
    return this.storage[key]
  }
  clear() {
    this.storage = {}
  }
}
// 제너릭을 문자 타입으로 전달
const stringsStorage = new LocalStorage<string>()
stringsStorage.get("cat")
stringsStorage.set("hello", "bye")

// 제너릭을 불리언 타입으로 전달
const booleansStorage = new LocalStorage<boolean>()
booleansStorage.get("xxx")
booleansStorage.get("yyy", true)

0개의 댓글