728x90

10 제네릭 프로그래밍

10-1 제네릭 타입 이해하기

  • 인터페이스나 클래스, 함수, 타입 별칭 등에 사용할 수 있는 기능으로,
    해당 심벌의 타입을 미리 지정하지 않고 다양한 타입에 대응하려고 할 때 사용

10-2 제네릭 타입 제약

  • 제네릭 타입 제약(generic type constraint) : 타입 변수에 적용할 수 있는 타입의 범위를 한정하는 기능

10-3 대수 데이터 타입

  • 객체지향 프로그래밍 언어에서 ADT라는 용어는 '추상 데이터 타입(abstract data type)을 의미하지만,
    함수형 언어에서는 대수 데이터 타입(algebraic data type)을 의미
  • 합집합 타입(union type)
    • '또는(or)'의 의미인 '|' 기호로 다양한 타입을 연결해서 만든 타입
  • 교집합 타입(intersection type)
    • '이고(and)'의 의미인 '&' 기호로 다양한 타입을 연결해서 만든 타입
  • 식별 합집합(discriminated unions)
    • 타입스크립트에서 합집합 타입의 각각을 구분할 수 있게 하는 구문을 제공

 

 

10-4 타입 가드

  • instanceof 연산자
    • 자바스크립트와는 다르게 '타입 가드(type guard)' 기능이 있음
    • 타입 가드는 타입을 변환하지 않은 코드 때문에 프로그램이 비정상으로 종료되는 상황을 보호해 준다는 의미
  • is 연산자를 사용해 타입 가드 기능을 하는 함수를 구현할 수 있음

10-5 F-바운드 다형성

  • 타입스크립트에서 this 키워드는 타입으로도 사용
    • this가 타입으로 사용되면 객체지향 언어에서 의미하는 다형성(polymorphism) 효과가 남
    • 일반적인 다형성과 구분하기 위해 this 타입으로 인한 다형성을 'F-바운드 다형성(F-bound polymorphism)'이라고 함
  • F-바운드 타입
    • 자신을 구현하거나 상속하는 서브타입(subtype)을 포함하는 타입

10-6 nullable 타입과 프로그램 안전성

  • nullable 타입 : undefinednull 타입
    • 타입스크립트에서 undefined값의 타입은 undefined이고, null값의 타입은 null
    • 이 둘은 사실상 같은 것이므로 서로 호환
  • nullable 타입들은 프로그램이 동작할 때 프로그램을 비정상으로 종료시키는 주요 원인
  • 옵션 체이닝(optional chaining)
    • 옵션 체이닝 연산자 : ?. (세이프 내비게이션 연산자(safe navigation operator))
  • 널 병합 연산자(nullish coalescing operator) : ??
  • 펑터(functor) : map 메서드가 있는 타입
출처 : Do it! 타입스크립트 프로그래밍
 

Do it! 타입스크립트 프로그래밍

‘타입스크립트’를 배우는 김에 ‘함수형 프로그래밍’까지 정주행하자!10만 건의 빅데이터 처리와 API 서버 & 리액트 웹 개발까지!이 책은 ES6 자바스크립트를 경험한 독자가 타입스크립트를

book.naver.com

728x90