userName1 처럼 정해진 타입을 가진 것을 문자열 리터럴 타입이라고 한다.
userName2에 숫자도 들어올 수 있게 하려면 명시적으로 입력을 해야 한다.
이렇게 만들었을 경우 Mobile에는 start()가 없기 때문에 에러가 난다.
이를 해결하기 위해서는 분기처리가 필요함
식별가능한 타입을 사용하는 것을 유니온 타입(or)이라고 한다.
유니온이 or을 의미했다면 교차타입은 and를 의미한다.
상위에서 선언한 Car와 Toy모두의 property를 적어줘야 에러가 발생하지 않음