Any Type

any 타입은 어떠한 타입의 값이든 이 변수에 할당 될 수 있다는 뜻이다.

한마디로 타입 체크 없이 아무거나 다 상관 없다는 것이다.
Union - 유니언 타입
어떤 타입이 변수에 들어올지는 정확히 알 수는 없지만, 변수의 타입이 무조건 숫자 혹은 문자열 이라는 것을 아는 경우
이런식으로 변수에 제한된 몇가지 타입들을 동시에 지정하고 싶을때, 사용되는 타입이 Union Type 이다.
Union type 사용 방법 은 매우 간단 하다.

syntax 를 보면 단순히 파이프 기호를 중간에 넣고 조합될 타입들을 위 예시 처럼 그냥 구분만 해 주면 된다.
someValue 라는 이름을 가진 변수는 숫자 혹은 불리안 타입 둘중 아무 타입이 할당 될 수 있는 변수 이다.
Type Aliases

숫자랑 문자열로 조합된 union type 타입으로 가지는 변수나 함수가 코드 내에 여러군대 있다면 똑같은 코드를 계속 반복해서 쓰는것 보다는 코드를 타입으로 지정하고 재활용 하는것이 보다 더 유용 하다.
같은 조합이 계속 반복될 경우 코드의 가독성을 향상 시키기 위해 사용되는 타입이 aliases 타입이다.

aliases 를 쓰기 위해서는 타입 키워드를 넣고 그리고 이름을 지어준다.
그리고 코드에서 반복되고 있는 코드에 타입을 선언한 타입으로 다 바꿔 주면 끝 !

Type Aliases 를 사용함으로써 코드의 재사용 뿐만이 아니라 읽기 힘들고 지저분해 보이는 코드들을 깔끔 하게 정리하는 효과 도 볼 수 있다.
Type Guard

스트링 타입과 넘버 타입이 조합된 유니언 타입을 타입으로 가지고 있는데 이렇게 함수로 전달 된 매개변수 의 값을 넘버 타입을 가진 itemPrice 의 값으로 할당하는 코드 이다.
선언된 함수 밑에 sellItemPrice 함수를 불러주고, 숫자 50을 넘겨주는데, itemPrice 에서 에러 메시지를 전달 하고 있는 상황이다.
에러의 이유는 price 매개변수가 숫자가 될 수도 있고 문자열이 될 수도 있기 때문이다.
만약 price 변수가 string value 일 경우, 숫자 타입을 가진 itemPrice 변수에 할당 될 수 없기 때문에 이러한 에러 메시지가 나타나게 되는 것이다.
자바스크립트에 내장 되어 있는 typeOf Operator 를 사용하는 방식 이다.
Typeof 연산자와 조건문을 함께 사용함으로써 이러한 문제가 되는 코드를 fix 할 수 있다.

price 타입이 string 타입일 경우 전달된 매개변수가 string 값일 때 itemPrice 를 숫자 0 으로 할당해준다.
그리고 else 를 주고 price 매겨변수에 타입이 string이 아닌경우 즉, 넘버 타입인 경우 전달된 price 의 value 를
itemPrice 에 그대로 할당 해준다.
그럼 코드에 에러메시지가 사라지게 된다.
typeof 이외에도 타입스크립트에서 type guard 방식이 몇가지 더 있는데 , google 에 검색하면 쉽게 찾아 볼 수 있다.

👉 youtube 땅콩 코딩