제네릭, 다형성, 클래스와 인터페이스 활용 예제
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)