TypeScript

이연중·2021년 9월 27일
0

TypeScript

목록 보기
1/4
post-custom-banner

자바스크립트는 타입을 체킹하는 시스템이 없는 약한 타입의 언어이다.
이러한 부분이 개발의 유연성을 높이는 장점은 있지만, 런타임 환경에서의 에러가 쉽게 나타난다는 치명적인 단점이 있다.
타입스크립트는 이러한 단점의 해소를 위해 컴파일 타임에 타입을 체킹 해 치명적인 오류를 쉽게 잡아낼 수 있도록 한다.

function sum(a,b){
    return a+b;
}

프로그래머는 sum 메서드의 리턴이 숫자라 의도하며 코드를 짠다.

그런데 만약 파라미터에 문자열이 전달된다면 어떻게 될까?

이 메서드를 사용하는 다른 곳에서 이를 숫자가 반환될거라 생각하고 로직을 짰을텐데 문자열이 전달된다면?

런타임 환경에서 치명적인 오류로 이어진다.

function sum(a: number, b: number){
    return a+b;
}

위처럼 타입을 지정해준다면, 의도한대로 숫자가 리턴될 것이며, 숫자가 아닌 다른 타입이 파라미터로 전달되면, 컴파일 타임에 오류가 발생한다.

타입스크립트 특징


  • 컴파일, 정적 타입 언어: 자바스크립트는 동적 타입의 인터프리터 언어로 런타임에서 오류를 발견한다. 반면, 타입스크립트는 정적 타입의 컴파일 언어이고 컴파일러나 바벨을 통해 자바스크립트 코드로 변환한다.
  • 자바스크립트 슈퍼셋: 자바스크립트 기본 문법에 타입스크립트의 문법을 추가한 언어이다.
  • 객체 지향 프로그래밍 지원: ES6에서 새롭게 사용한 문법을 포함하고 클래스, 인터페이스, 상속, 모듈 등을 제공한다.

타입스크립트는 미리 타입을 결정하고 컴파일 타임에 이에 대한 체킹을 하여 오류여부를 던져주므로 자바스크립트에 비해 실행 속도가 매우 빠르다.
(다만, 매번 타입의 결정으로 인한 코드의 복잡도는 증가한다.)

참고

https://typescript-kr.github.io/pages/tutorials/ts-for-the-new-programmer.html
https://www.samsungsds.com/kr/insights/TypeScript.html

profile
Always's Archives
post-custom-banner

0개의 댓글