https://nomadcoders.co/typescript-for-beginners/lobby
코드에 버그가 줄어듭니다.
런타임 에러가 줄어듭니다.
생산성이 증가합니다.
자바스크립트는 개발자를 이해(?!)하려고 한다.
[1,2,3,4] + false
를 했을 때 결과는 '1,2,3,4false'가 나옵니다.
맞지 않는 타입을 더했음에도 에러가 나지 않는다. (?????)
또는
function divide(a,b) {
return a/b
}
다음과 같은 함수를 선언하고 호출할 때 divide("#####")으로 호출을 하면 결과로 Nan이 나옵니다.
숫자를 넣지도 않았고 심지어 인자를 하나만 줬는데 실행이 된다. (?????)
컨파일 과정에 대해서도 알아볼까요?
컴파일 에러란 코드가 실행된 후에 뜨는 에러인데 자바스크립트는 위의 예시가 에러가 일어날 것을 모르고 그냥 실행시켜 버린 것입니다.
우리가 원하는 것은 컴파일 전에 객체를 분석하여 hello() 함수가 없다는 것을 알려주는 것이죠.
위의 예시는 우리가 컴퓨터에게 코드에 대한 설명을 해주지 않았기 때문에 이런 에러가 일어나는 것입니다.
그럼 이제 이 문제들을 해결해볼까요?