TypeScript의 가장 큰 장점!
이로 인해 개발자를 에러/버그로부터 보호해 준다.
[1, 2, 3, 4] + false // 1,2,3,4false
배열이 사라지고, string이 되어버린다
boolean 타입이던 false
도 string이 되어 배열과 합쳐진다.
⇒ 이상한 일인데도 JavaScript는 이를 허용해버린다!
divide
에 1개의 string을 전달한다면?function divide(a, b) {
return a / b
}
divide("xxxxxx") // NaN
⇒ 올바른 함수 사용법이 아닌데도 JavaScript는 이를 전혀 막아주지 않는다!
자바스크립트는 a, b가 무엇인 지, 필수 입력값인지 선택 사항인 지 모른다.
const nico = {
name: "nico"
}
nico.hello() // TypeError: nico.hello is not a function
⇒ JavaScript는 코드를 실행하고 나서야 에러를 표시한다! (런타임 에러)
TypeScript 같은 경우, 컴파일 자체가 실패하기 때문에 코드를 실행할 수 없다.