Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Udemy/Ts/section7/94: Generics Class #56

Open
wants to merge 36 commits into
base: UdemyTs
Choose a base branch
from
Open

Conversation

4BFC
Copy link
Member

@4BFC 4BFC commented Oct 1, 2024

✍Udemy/Ts/section7/94: Generics Class

본 PR은 청강 1회독을 마친 후 N회독으로 작성된 PR입니다.

🔗Reference

🔥KeyWord

  • Generics Class
  • Generics
  • Class
  • return

📝Description

  • Generics Class는 우리가 알고 있는 일반적인 Generics가 아니다.

  • 🚩 내장 클래스(제네릭)과 일반 제네릭의 사용 차이

    • 이 강의에서 주의할 점은 내장된 제네릭 클래스를 설명하고 있다. 즉, 일반적인 제네릭 클래스가 아니다. 앞서 설명 예시에서 보여주 듯 내장된 제네릭 클래스는 Array, Promise가 있다. 그리고 뒤에 붙어 있는 홑 괄호 사이 <~>의 타입은 반환되는 값을 명시적으로 지정한 것이다. 이 강의 이후부터는 변수, 함수를 위한 제네릭을 배우게 될 것이다.
  • interface와 Generics

    • interface도 타입을 명시하는 객체와 같은 속성이다. 이는 앞서 비유해서 말했 듯, 명세서와 같다. 그렇다면 Generics는 무엇인가. 다시 한번 정리하자면 interface는 객체, 클래스, 함수의 형태를 정의하고 특정 구조를 강제하는 역할을 한다. 주로 속성, 함수의 이름과 타입을 정의하여 객체나 클래스가 어떤 구조를 가져야 하는지 명확히 하는 데 사용된다. 이에 반해서 Generics는 다음과 같다. 제네릭은 타입을 매개변수처럼 다루는 도구이다. 타입을 유연하게 지정할 수 있어 다양한 타입을 수용할 수 있는 재사용성 높은 함수, 클래스, 인터페이스를 작성할 수 있다. 제네릭을 사용하면 함수나 클래스에서 특정 타입이 필요하지만 구체적인 타입은 해당 함수나 클래스를 사용할 때 지정할 수 있도록 만들어 준다. 이를 통해서 우리는 알 수 있다. 왜 any와 같은 모호한 타입지정을 지양해야하는지 말이다.

📌Summary

  • 제네릭의 개념과 다양성을 알게 되었다. 뿐만 아니라 any와 같은 모호한 타입을 사용하지 말라는지도 Generics를 통해 충분히 납득을 할 수 있었고 interface와의 차이도 충분히 이해를 했다. 이제 이러한 타입들을 어떻게 관리하고 분리해야하며 프로젝트에 어떻게 적용을 해야 효율적일지 고민하게 된다.

4BFC and others added 30 commits August 27, 2024 01:50
Github에서 수정한 커밋입니다.
Github에서 수정한 커밋입니다.
Github에서 수정한 커밋입니다.
Github에서 수정한 커밋입니다.
Github에서 수정한 커밋입니다.
Github에서 수정한 커밋입니다.
Github에서 수정한 커밋입니다.
Github에서 수정한 커밋입니다.
Github에서 수정한 커밋입니다.
Github에서 수정한 커밋입니다.
Github에서 수정한 커밋입니다.
Github에서 수정한 커밋입니다.
Github에서 수정한 커밋입니다.
Github에서 수정한 커밋입니다.
Github에서 수정한 커밋입니다.
Github에서 작성한 커밋입니다.
Github에서 작성한 커밋입니다.
Github에서 수정한 커밋입니다.
Github에서 수정한 커밋입니다.
@4BFC 4BFC added the 2회독 회독 label Oct 1, 2024
@4BFC 4BFC added this to the Udemy:TypeScript milestone Oct 1, 2024
@4BFC 4BFC requested a review from nyun-nye October 1, 2024 12:18
@4BFC 4BFC self-assigned this Oct 1, 2024
@4BFC 4BFC changed the base branch from main to UdemyTs October 1, 2024 12:18
@4BFC
Copy link
Member Author

4BFC commented Oct 2, 2024

@nyun-nye Generics와 interface의 차이를 설명한 PR입니다. 참고하세요.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
2회독 회독
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant