타입스크립트는 strongly-typed 언어이다.
strongly-typed란, 프로그래밍 언어가 작동하기 전에 type을 확인하는 것이다.
왜 타입스크립트를 써야할까?
자바스크립트는 정적 타입을 지원하지 않으므로 어떤 타입의 반환값을 리턴해야 하는지 명확하지 않고, 이는 개발자의 실수로 인해 에러를 만들어낸다.
아래 코드는 타입스크립트 홈페이지에서 긁어온 예제인데,
console.log(user.name);을 해주면 어떤 값이 뜰까?
EX)
const user = {
firstName:'Angela',
lastName:'Davis',
role:'Professor',
}
값은 undefined이 뜬다. 왜냐면 user는 name을 갖고 있지 않기 때문인데,
자바스크립트는 user객체에 없는 값인데도 불구하고 에러를 띄우지않았다.
타입스크립트는 이러한 불상사를 미리 방지할 수 있다.
추가로 리액트와 타입스크립트를 같이 사용하는데에 의문이 들 수 있다.
리액트엔 Prop Types라는게 있는데 굳이 타입스크립트를 사용해줘야할까?
이 의문의 정답은 다음과같다.
리액트의 Prop Types는 prop이 거기에 있는지 없는지 확인해주지만, 코드를 실행한 후에만 가능하다.
반면에, 타입스크립트는 코드를 실행하기 전에 먼저, 체크해준다. 그렇기때문에 리액트에서 타입스크립트를 사용해주는게 올바른 방향이라고 생각한다.