타입 추론
지금까지 사용한 타입 애너테이션이 대부분의 경우는 필요 없다는 사실에 대해 알려드리려고 합니다. 애너테이션은 타입과 구문의 기초를 배울 때는 좋은 도구이지만 실제로 변수를 작성할 때는 타입 추론(Inference)을 사용하면 됩니다.
TypeScript는 꽤 똑똑하기 때문에 변수 선언을 보면 어떤 값에 할당되는지 파악합니다. 지금 보시는 경우에는 27이 x에 할당되었는데 TypeScript은 이를 보고 27이 숫자이기 때문에 x가 숫자 타입이라는 걸 추론합니다. 그러고 나서 x 값에 숫자가 아닌 문자열이나 불리언 타입을 넣으면 오류라고 표시합니다.
// Type Inference
let tvShow = "Olive Kitteridge";
tvShow = "The Other Two";
tvShow = false;
let isFunny = false;
isFunny = true;
isFunny = "asd";
이를 토대로 전에 작성한 코드를 보면 movieTitle은 쓸데없이 많이 문자열이라고 할당한 거죠 TypeScript이 추론할 수 있습니다. string이라고 타입을 지정하지 않아도 됩니다. 그럼 타입 추론을 한번 활용해 보죠 tvShow를 "Olive Kitteridge"라는 문자열과 같다고 가정합니다.
본론으로 돌아가서 tvShow 변수에 마우스를 올리면 문자열이라는 걸 콜론(:)으로 애너테이션을 설정한 것과 동일하게 알려줍니다. 시간과 노력을 덜 들였는데 결과는 같습니다. 하지만 이 경우에 문자열 타입 정의를 위해서는 이렇게만 적으셔도 TypeScript이 추론할 수 있습니다.
다른 문자열을 넣어서 바꿔보아도 문제 없습니다. 불리언 값인 false는 문제가 생깁니다. 불리언 값은 문자열 타입으로 할당할 수 없으니 오류가 발생합니다.
변수 isFunny에 불리언 값으로 false를 할당해 봅니다. 이제 변수에 마우스를 올려보면 TypeScript이 변수가 불리언 타입임을 추론하고 있습니다. 다른 불리언 값인 true로 바꿀 수 있지만 다른 타입은 불가능합니다.
정리하면 TypeScript은 할당된 변수를 토대로 타입을 추론할 수 있습니다. 하지만 애너테이션으로 타입을 직접 할당해야 하는 경우도 존재합니다. 변수가 문자열이 아니라 문자열 배열 타입이라고 하는 것입니다. 다만, 아직 강의에서 나온 적이 없고 쓸 일이 많이 없습니다.
'SW > TypeScript' 카테고리의 다른 글
TypeScript : Any 타입 : 개념, 예제, 설명 (0) | 2023.04.06 |
---|---|
TypeScript : 타입 애노테이션 : 개념, 예제, 설명 (1) | 2023.04.05 |
TypeScript : 컴파일 방법, 예제, 개념 (0) | 2023.04.03 |
TypeScript : 숫자와 불리언 타입 : 사용 방법, 개념, 예제 (0) | 2023.04.02 |
TypeScript : 용도, 사용 이유 (0) | 2023.04.01 |