any 타입은 모든 값을 포함하는 타입입니다
그래서 숫자 혹은 문자열 심지어 함수도 입력할 수 있습니다
any 타입은 기존에 JS로 작성된 프로젝트를 TS로 포팅하는 경우에 유용하게 사용할 수 있습니다
기존 프로젝트의 모든 타입을 한번에 정의하는것은 부담되기 때문에
타입 에러가 나는 부분은 임시로 any 타입으로 정의하면 됩니다
any 타입은 실제로 타입을 알 수 없는 경우나 타입 정의가 안된 외부 패키지를 사용하는 경우에도
사용하기 좋습니다
그리고 any 타입은 타입의 일부만 알고 전체는 알지 못할 때 유용합니다
위 예시 처럼 여러 다른 타입이 섞인 배열을 다룰 수 있습니다
단, any 타입을 남발하면 타입스크립트를 사용하는 의미가 퇴색되기 때문에 최대한 사용하지 않는 것이 좋습니다
함수의 반환 타입으로 void 와 never를 사용할 수 있습니다
아무값도 반환하지 않고 종료되는 함수의 반환 타입은 void 타입으로 정의할 수 있습니다
그리고 항상 예외가 발생해서 비정상적으로 종료되거나 무한루프 때문에 종료되지 않는
함수의 반환 타입은 never 타입으로 정의할 수 있습니다
보통 never는 거의 사용할 일이 없습니다
이유는 never 타입에는 절대 다른 값을 리턴할 수 없기 때문에 에러를 던지던지
while을 true로 줘서 계속 도는것이 아니면 never를 쓸 수 없기 때문입니다
object는 원시 타입이 아닌 타입을 나타냅니다
예를 들어, number, string, boolean, bigint, symbol, null,
또는 undefined 가 아닌 나머지를 의미합니다
하지만 예시처럼 특정 속성값에 접근하면 타입 에러가 발생합니다
속성 정보를 포함해서 타입을 정의하기 위해서는 인터페이스를 사용해야 합니다
type 키워드를 이용해서 타입에 별칭을 줄 수가 있습니다
이렇게 number 또는 string이 가능한 타입을 정의해놓고
이것을 원하는 곳에서 사용할 수 있습니다
예시에서는 숫자와 문자열을 모두 입력할 수 있게 됩니다
출처
이 포스팅은 이재승 개발자님의 타입스크립트 시작하기 강의와
타입스크립트 공식 웹 사이트 프로젝트인 TypeScript-Handbook 을 통해서
공부한 내용을 기반으로 작성되었습니다