Skip to content

Latest commit

 

History

History
52 lines (30 loc) · 1.91 KB

File metadata and controls

52 lines (30 loc) · 1.91 KB

2. 타입스크립트를 사용하는 이유: 높은 생산성

컴파일 타임에서 에러 발생 -> 에러 조기 식별 및 조치 가능

const mike = { friends: ['june', 'james']};
const totalFriends = mike.friendsList.length;

위와 같은 자바스크립트 코드가 있다고 해보자.

위 코드는 friendsList라는 잘못된 프로퍼티를 가져오고 있기 때문에

TypeError: Cannot read property 'lenngth' of undefined

라는 에러가 런타임 시에 발생한다.

문제는 이걸 컴파일 타임이 아니라 런타임 떄 나온다는 것이다.

개발 단계에서 미리 발견하고 조치하는 게 아니라 사용자에게 에러가 노출이 될 확률이 높기 때문이다.

하지만 위와 똑같은 코드를 타입스크립트로 작성하면

IDE(VS CODE)가 에러를 감지하고 바로 개발자에게 알려주며, 컴파일 당시 에러가 발생하여

개발자가 자신의 실수를 고칠 수 있게 한다.

컴파일 타임에서 타입이 지정됨

const total = product.

자바스크립트에서는 런타임 이전엔 product의 타입을 알지 못하기 때문에 product가 객체인지 배열인지 알 수 없다.

interface Product {}

let product: Product = {} as Product;

const totalParts = product.parts.length;

하지만 타입스크립트는 미리 타입을 지정하기 때문에 product의 타입이 무엇인지, 또 그 안에 포함된 속성이 무엇인지도 알 수 있다.

또 리팩토링 시 속성의 이름을 바꾸고자 한다면,

자바스크립트 같은 경우 해당 속성을 찾아바꾸기(command + f) 등의 기능을 이용하지만 이 방법은 실수할 여지가 많다.

타입스크립트는 interface등 미리 정의된 속성만 바꿔주면 IDE가 알아서 바꿔준다.

또 타입 스크립트에서 코드는 타입들로 묶여 있기 때문에 파일들을 오가며 탐색하기도 쉽다.