TypeScript - Generic 2

Seung min, Yoo·2021년 5월 7일
0
post-thumbnail
  1. Generic은 클래스를 정의할 때에도 사용할 수 있다.
class LocalDB {
  constructor(private localStorageKey: string) {
  
  }
  add(v: User) {
    localStorage.setItem(this.localStorageKey, JSON.stringify(v));
  }
  get(): User {
    const v = localStorage.getItem(this.localStorageKey);
    return (v) ? JSON.parse(v) : null;
  }
}

//1.
interface User { name: string }

const userDb = new LocalDB('user');
userDb.add({ name: 'jay' });
const userA = userDb.get(); // userA은 타입이 any로 있다.
userA.name; // userA에 대해서 타입을 고정해 보자 => 1.

LocalDB를 유저 하나의 하나의 타입만 넣고 빼고 싶은 것이 아니라 여러 타입에 대해서 처리하고 싶다면

class LocalDB<T> {
  constructor(private localStorageKey: string) {
  
  }
  add(v: T) {
    localStorage.setItem(this.localStorageKey, JSON.stringify(v));
  }
  get(): T {
    const v = localStorage.getItem(this.localStorageKey);
    return (v) ? JSON.parse(v) : null;
  }
}

//1.
interface User { name: string }

const userDb = new LocalDB<User>('user');
userDb.add({ name: 'jay' });
const userA = userDb.get(); 
userA.name;
profile
이제 막 개발을 시작한 프로그래밍 입문자

0개의 댓글