[typescript] 타입스크립트에서의 변수 선언과 할당에서 호이스팅은 어떻게 영향을 미치나요?

타입스크립트에서 변수 호이스팅은 JavaScript와 유사한 방식으로 동작합니다. 호이스팅이란 변수 및 함수 선언이 해당 스코프의 최상단으로 끌어올려지는 특성을 의미합니다. 하지만, 할당 부분은 호이스팅되지 않기 때문에 변수를 선언한 이후에 값을 할당하더라도 호이스팅은 값에는 영향을 주지 않습니다.

예를 들어, 다음과 같은 타입스크립트 코드가 있다고 가정해봅시다.

console.log(myVar); // undefined
var myVar: number = 10;

실제로 호이스팅된 코드는 다음과 같이 해석됩니다.

var myVar;
console.log(myVar); // undefined
myVar = 10;

따라서 호이스팅은 변수 선언을 해당 스코프의 최상단으로 끌어올리지만, 변수에 값을 할당하는 부분은 그대로 남아 있습니다.

이러한 동작 방식으로 인해 변수를 선언하기 전에 해당 변수를 참조하더라도, 호이스팅 덕분에 에러 없이 코드가 실행되는 것을 확인할 수 있습니다. 하지만, 값이 할당되기 전에 변수를 사용하면 ‘undefined’가 출력됩니다.

타입스크립트에서 변수 호이스팅에 대한 이해는 코드의 동작을 예측하고 오류를 방지하는 데 도움이 될 수 있습니다.