(TS) TypeScript

Mirrer·2022년 11월 30일
0

TypeScript

목록 보기
1/14
post-thumbnail

What is TypeScript?

JavaScript의 단점을 보완해 만든 언어, 즉 JS의 확장버전

JavaScript런타임(Runtime)시 자료형을 정하는 동적 타입 언어(dynamic type language)이기 때문에 런타임 속도는 빠르지만 타입의 안정성이 보장되지 않는다.

이러한 JavaScript의 특징은 자유도를 높이지만, 프로젝트의 규모가 커질수록 개발자가 예상하지 못한 오류를 발생시킨다는 단점이 있다.

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

sum(1, 2); // 3
sum("1", "2"); // 12

그래서 이러한 단점을 보완하고자 마이크로소프트(MS)에서는 TypeScript라는 오픈소스 프로그래밍 언어를 개발하였다.

TypeScript컴파일(Compile)시 변수의 타입이 결정되는 정적 타입 언어(static type language)이기 때문에 컴파일 시간이 조금 더 걸리지만 안정성을 보장한다.

그래서 JavaScript에서 사용되던 모호한 타입을 제어하여 간편하게 디버깅 에러를 해결할 수 있다.

function sum(a: number, b: number) { // 매개변수 a, b는 number타입
  return a + b;
}

sum(1,2) // 3
sum('1', '2'); // Error (의도하지 않은 코드의 동작을 예방)

Features

TypeScript다음과 같은 특징을 가지고 있다.


ES6 Module

TypeScriptES7이하의 표준을 포함하기 때문에 기존 ES5 자바스크립트 문법을 그대로 사용할 수 있다.

ESECMAScript의 약자로 뒤에 붙는 숫자는 버전을 뜻한다.

또한 ES6의 새로운 기능들을 사용할 때는 Transpiler가 아닌 기존의 자바스크립트 엔진을 사용하기 때문에 보다 간편하게 해당 기능들을 사용할 수 있다.


Class, Interface

TypeScriptES6에 존재하는 Class, Interface 특징을 지원하여 보다 완전한 객체지향 프로그래밍 환경을 제공한다.


Type System

TypeScript의 가장 큰 특징은 Type System을 지원하는 것이다.

TypeScript는 기존 JavaScript 타입을 확장하고 Type Annotation을 이용해 변수에 타입을 선언한다.

이를 통해 변수에 엄격한 타입이 적용되어 보다 높은 타입 안정성을 확보할 수 있다.


참고 자료

TypeScript: JavaScript With Syntax For Types.
React TypeScript Tutorial for Beginners - Codevolution
타입스크립트 입문 - 기초부터 실전까지 - 장기효

profile
memories Of A front-end web developer

0개의 댓글