TS, Generic

김선우·2022년 6월 25일
0

Posting

목록 보기
32/60

generic타입은 어떠한 클래스, 혹은 함수에서 사용할 타입을 그 함수나 클래스를 사용할 때 결정하는 기법을 말한다.

js는 원래 타입선언이 필요하지 않고, 그렇기에 특정 타입을 위해 만들어진 클래스나 함수도 타입 에러를 일으킬 여지가 있다.

Generic타입을 사용하는 이유

any라는 타입이 있긴하지만, 저장하는 자료의 타입이 각기 다른형태를 띄고 있을수 있다는 단점이있다.(수업시간에 들은 바로는 any라는 타입 자체가 안전하지 않은 타입이라고 말씀하셨다.)

class Stack<T> {
  private data: T[] = [];

  constructor() {}

  push(item: T): void {
    this.data.push(item);
  }

  pop(): T {
    return this.data.pop();
  }
}

클래스 식별자 선언부에 <T>라는 못보던 문법이 추가된 것을 확인할 수 있다. 제네릭을 사용하겠다는 의미로 꺽쇠(Angle brackets)를 넣고 그 안에 타입으로 사용되는 식별자를 집어넣는다.

T는 Type의 약자로 다른 언어에서도 제네릭을 선언할 때 관용적으로 많이 사용된다. 이 부분에는 식별자로 사용할 수 있는 것이라면 무엇이든 들어갈 수 있다. 이를테면 $나 _도 가능하다는 의미다. 하지만 대개의 경우 T를 사용한다. 여기에서 T를 타입 변수(Type variables)라고 한다.

profile
생각은 나중에..

0개의 댓글