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 타입 : undefined와 null 타입
- 타입스크립트에서 undefined값의 타입은 undefined이고, null값의 타입은 null
- 이 둘은 사실상 같은 것이므로 서로 호환
- nullable 타입들은 프로그램이 동작할 때 프로그램을 비정상으로 종료시키는 주요 원인
- 옵션 체이닝(optional chaining)
- 옵션 체이닝 연산자 : ?. (세이프 내비게이션 연산자(safe navigation operator))
- 널 병합 연산자(nullish coalescing operator) : ??
- 펑터(functor) : map 메서드가 있는 타입
출처 : Do it! 타입스크립트 프로그래밍
728x90
'Do it! > 타입스크립트 TS' 카테고리의 다른 글
Do it! 타입스크립트 프로그래밍 - 모나드 (0) | 2021.02.04 |
---|---|
Do it! 타입스크립트 프로그래밍 - 람다 라이브러리 (0) | 2021.01.28 |
Do it! 타입스크립트 프로그래밍 - 함수 조합의 원리와 응용 (0) | 2021.01.26 |