타입스크립트는 웹 앱, 모바일 앱, NodeJS 프로젝트, IoT 등에서 사용하는 언어로, Javascript에서 흔히 발생하는 실수를 방지하며 단위 테스트의 숫자를 절반으로 줄임으로 더 안전한 프로그램을 구현할 수 있게 도와준다.
type safety
를 이용하여 프로그램이 유효하지 않은 작업을 수행하지 않도록 방지한다.
다음은 유효하지 않은 동작의 몇 가지 예다.
3 + [] // 숫자와 리스트 더하기
let obj = {}
obj.foo // undefined
function a(b) {
return b/2
}
a("z") // 문자열은 /2 불가
이와 같이 명백하게 유효하지 않은 코드임에도, 자바스크립트는 최선을 다해 결과를 도출하려 한다. 또한 자바스크립트는 프로그램을 실행하기 전까지 에러가 발생하는 지 모른다. 이와 같은 일들을 방지하기 위해 타입스크립트가 등장했다.
동일한 내용의 코드를 타입스크립트로 작성해보았다.
3 + [] // 에러 TS2365: '3'타입과 '[]' 타입에 연산자 '+' 적용할 수 없음
let obj = {}
obj.foo // 에러 TS2339: '{}' 타입에 'foo' 프로퍼티 존재하지 않음
function a(b: number) {
return b/2
}
a("z") // 에러 TS2345: 'number' 타입의 매개변수에 "z" 인수 타입 할당할 수 없음
이와 같이, 타입스크립트는 프로그램을 실행하기도 전에 에러 발생을 알려준다.
자바스크립트와 가장 차별화 되는 점이며, 혁신적인 부분이다.
타입스크립트를 활용하여 코드를 작성하면, 모든 타입 관련 버그를 방지할 수 있고 코드를 작성하는 방식도 달라진다. 유지보수가 쉬운 코드를 작성할 수 있다.