ESNext는 ES5의 모든 문법을 포함하고, 타입스크립트는 ESNext의 모든 문법을 포함한다.
물리적으로는 배열과 같지만 배열에 저장되는 아이템의 타입이 모두 같으면 배열, 다르면 튜플이다.
let numberArray: number[] = [1, 2, 3];
let tuple: [boolean, number, string] = [true, 1, 'ok'];
ADT, 추상 데이터 타입(abstract data type)을 의미하기도 하지만 대수 타입(algebraic data type)이라는 의미로도 사용됩니다. 다른 자료형의 값을 가지는 자료형을 의미합니다.
크게 합집합 타입 (union 또는 sum type) 과 교집합 타입 (intersection 또는 product type) 두가지가 있다.
type NumberOrString = number | string;
type AnimalAndPerson = Animal & Person;