console.log(typeof [1, 2, 3]); // object
리터럴은 상수처럼 메모리 어딘가에 값이 변하지 않도록 저장이 되는데,, 이름이 없음
즉 리터럴은 컴파일시 프로그램내 정의되어있는 그대로 정확히 해석되어야 할 값
(테이터를 표현하는 방식을 리터럴이라고도 함)
거의 사용 안함
객체의 타입은 object 근데 그냥 const amo: object; 라고 해버리면 amo 속성값 접근 시 에러남
속성까지 설정 해주려면 뒤에서 사용하는 인터페이스
const amo: (1 | 2 | 3) & (2 | 3 | 6)
여러 타입의 교집합과 합집합을 표현할 수 있음
이렇게 할경우 amo = 2, 3만 가능한 타입이 되는거임
자바에 있는 타입,,, enum을 사용할 경우에 Fruit랑 그 안에 있는 원소 모두 각각 타입으로 사용이 가능하다.
그리고 값 뿐만아니라 값으로도 사용이 가능하다
enum Fruit { Apple, Banana, Orange, }
const v1: Fruit = Fruit.Apple;
const v2: Fruit.apple | Fruit.Banana = Fruit.Banana;
enum 첫 번째 원소에 값을 할당하지 않으면 자동으로 0 할당 , 각 원소에는 숫자 또는 문자열을 할당할 수 있다 그 다음 원소는 이전 원소보다 1씩 커진다 그 말은 banana 뒤에 orange는 6을 할당 받을거다
그리고 enum은 객체로 존재