{본질을 꿰뚫는 TS} - Generic 실습
- 제네릭은 타입을 미리 정하지 않고, 어떤 타입이든 허용하는 것을 의미하며, 함수에서 여러 타입을 받을 수 있다. 🔀
- 셋(Set) 자료 구조에서 제네릭을 사용하는 이유는 셋에 들어갈 데이터의 타입을 제한하기 위함이며, 이를 통해 중복을 방지한다. 🧱
- 제네릭을 오브젝트 타입으로 대체할 수 있지만, 데이터를 꺼내 사용할 때 형변환의 불편함이 발생하므로 제네릭을 사용하는 것이 더 효율적이다. 📤
- 클래스에서 제네릭을 사용할 때, 스테이틱 영역에서는 제네릭을 사용할 수 없는데, 이는 스테이틱이 인스턴스 생성 시점이 아닌 클래스 정의 시점에 결정되기 때문이다. 🚫
- 타입스크립트에서 타입 엘리어스는 제네릭을 통해 확장 가능하며, 컴파일 시점에 타입이 치환되어 처리된다. 🏷️
- 판별자(Discriminator)는 타입 정의 시 가변적인 프로퍼티를 가진 경우, 타입 판별을 위해 사용되며, 외부 API에서 데이터를 가져올 때 유용하다. 🔑
- 제네릭 기본값 설정 시, 앞서 정의된 타입을 활용할 수 있으며, extends 키워드를 사용하여 제네릭에 제약 조건을 추가할 수 있다. 🔒
- extends와 삼항 연산자를 함께 사용하여 타입 조건을 더욱 세밀하게 설정할 수 있으며, keyof 연산자를 통해 객체의 키 타입들을 추출할 수 있다. 🧰
- 인덱스 시그니처를 활용하여 객체의 모든 키에 대한 타입을 정의할 수 있으며, 인터섹션(&)을 통해 타입들을 결합할 수 있다. 🖇️
- 제네릭을 활용하여 딜리트 어레이 함수를 구현함으로써, 다양한 타입의 배열에서 특정 조건을 만족하는 요소를 삭제하는 범용적인 함수를 만들 수 있다. 🗑️