c언어와 java 등은 엄격한 타입 언어이다. 이 언어들은 변수를 선언할때 데이터 타입을 결정한다.
반면, javascript는 느슨한 타입 언어이다. 변수를 선얼할때 미리 데이터 타입을 정하지 않는다.
예를들어 설명하자면 다음과 같다.
console.log(
typeof intNum,
typeof floatNum,
typeof singleQuoteStr,
typeof doubleQuoteStr,
typeof boolVar,
typeof nullVar,
typeof emptyVar
);
// 출력결과 number number string string boolean object undefined
'변수를 선언할때 타입을 굳이 입력해 주지 않아도 된다는 점은 편리한 것이 닐까?' 라고 생각할 수 있지만 그에따른 문제점도 존재한다.
문제점을 살펴보자!
첫번째로, 변수의 타입을 따로 지정하지 않기 때문에 대형프로젝트나 협업 시 타입이 다르게 입력되어 중간에 오류가 날 수 있고 그 오류를 찾아내기가 굉장히 어렵다는 점이다.
두번째로, 코드 실행 도중 변수에 예상치 못한 타입이 들어와 타입에러가 발생할 수 있다.
그럼 이 문제를 어떻게 보완할 수 있을까?
자바스크립트의 이러한 문제점을 보안하기 위해 타입 스크립트를 사용하면 됩니다.
타입스크립트는 javascript의 타입을 확장하고 타입 어노테이션(선언 시 직접 알려주는 것)을 이용해서 변수에 타입을 선언할 수 있게 합니다. 이렇게 타입을 지정하게 되면 변수는 엄격한 타이핑이 적용되어 타입의 안정성이 확보할 수 있습니다.