TypeScript

이한형·2022년 2월 11일
0

TypeScript

JavaScript는 동적 타입 언어로 타입을 따로 지정하지 않습니다.
그에 반해 TypeScript는 JavaScript에 타입을 부여한 JavaScript의 확장된 언어입니다.

TypeScript 특징

  • 컴파일 언어, 정적 타입 언어
    • 자바스크립트는 동적 타입의 인터프리터 언어로 런타임에서 오류 발견, 타입스크리는 정적 타입의 컴파일 언어이므로 TS 컴파일러 or 바벨을 통해 JS코드로 변환됨. 코드 작성 단계에서 타입을 체크해 오류를 확인하고 미리 타입을 결정하기 때문에 실행 속도가 매우 빠름 단 코드 작성 시 매번 타입을 결정해야 하기 때문에 번거롭고 코드량이 증가, 컴파일 시간이 오래 걸린다는 단점
  • JavaScript Superset
    • TS는 JS에서 문법을 추가한 언어, 즉 유효한 JS로 작성한 코드는 확장자를 .JS에서 .TS로 변경하고 타입스크립트로 컴파일해 변환 가능

TypeScript 장점

  • 높은 수준의 코드 탐색과 디버깅
    • TS는 코드에 목적을 명시하고 목적에 맞지 않는 타입의 변수나 함수들에서 에러를 발생시켜 버그를 사전에 제거
  • 자바스크립트 호환
    • TS는 JS와 100% 호환 가능
  • 개발 편의성 및 유지보수
    • 소스 코드에 타입 정보가 있으므로 소스 코드를 이해하기 쉬워짐
    • 컴파일러도 소스 코드에 담긴 타입 정보 이용 가능
    • 소스 코드로부터 각종 메타 정보를 추출하여 개발 편의성(탐색, 참조, 자동 완성, 리팩터링)
    • 숨겨진 에러 찾기 가능
  • 강력한 생태계
    • 대부분의 라이브러리들이 TS를 지원

TS vs JS

TSJS
타입 정보 위치소스코드X
컴파일러 타입 추론 기능OX
컴파일러 타입 검증 기능O
타입이 잘못되면 빌드 자체가 불가능X
자동 완성 기능OX
문맥상 제한적인 추론
참조 탐색 기능O
어디에 사용되었는지 100% 추적X
리팩터링 기능OX
코드 양다소 많음다소 적음

TypeScript Type

Typedesc
booleantrue, false
null값이 없다는 것을 명시
undefined값을 할당하지 않은 변수의 초기값
number숫자(정수와 실수, Infinity, NaN)
string문자열
symbol고유하고 수정 불가능한 데이터 타입이며 주로 객체 프로퍼티들의 식별자로 사용(ES6에서 추가)
object객체형(참조형)
array배열
tuple고정된 요소수 만큼의 타입을 미리 선언후 배열을 표현
enum열거형. 숫자값 집합에 이름을 지정한 것
any타입 추론(type inference)할 수 없거나 타입 체크가 필요없는 변수에 사용, var 키워드로 선언한 변수와 같이 어떤 타입의 값이라도 할당 가능
void일반적으로 함수에서 반환값이 없을 경우 사용
never결코 발생하지 않는 값
profile
풀스택 개발자를 지향하는 개발자

0개의 댓글