본문 바로가기
TIL

151. [TypeScript] TypeScript란? TIL 23.05.08

by 새싹_v 2023. 5. 8.
728x90


 

TypeScript란?

타입스크립트는 자바스크립트에 타입을 부여한 언어.
Microsoft에 의해서 개발 및 관리되고 있는 오픈소스 프로그래밍 언어로
대규모 애플리케이션을 개발하는데 JS가 어렵고 불편하다는 불만에 대응하기 위해서 개발되었다.

 

SuperSet : JS의 모든 기능을 포함하고 있다.

👉 슈퍼셋(SuperSet)이란
슈퍼셋은 상위 집합을 의미. 모든 자바스크립트 프로그램은 이미 타입스크립트 프로그램이며,
반대로 타입 스크립트는 별도의 문법을 가지고 있기 때문에 유효한 자바스크립트 프로그램이 아니다.

👉 타입이란?
기본형 타입(단일타입)으로는 7가지(string, number, boolean, null, undefined. symbol, bigint)와
유니온 타입(다중 타입, =교집합)과 인터섹션 타입(다중 타입, =합집합), 옵셔널 타입 등과 같은 타입을 변수, 파라미터, 함수에 부여한 것을 의미

 

 

TypeScript vs JavaScript

 

Type

- TypeScript는 정적 타입
- JavaScript는 동적 타입

ex)

- JS : 별다른 문제 없이 값이 할당됨.

let num = 2;
num = '이';

 

- TS : 아래 사진 처럼 오류가 남.

let num = 2;
num = '이';

 

Time(변수의 type 결정 시점)

- TypeScript는 컴파일 타임에 결정된다.
- JavaScript는 런타임에 결정된다.

👉 컴파일타임 : 작성한 소스 코드가 어떠한 것(js,binary 등)으로 변환되는 과정 👉 IDE(VS Code)에서 에러가 날 상황을 빨간 줄로 미리 알려줌
👉 런타임 : 프로그램이 실행되는 과정

 

 

TypeScript를 왜 사용할까?

  장점 단점
TypeScript 1. Microsoft에서 만들었고 꾸준히 업데이트한다.
2. 생태계가 크다.
3. Microsoft에서 개발한 vscode와 잘 맞는다.
4. 대부분의 lib에서 타입 정의 파일을 제공한다.
5. 유지보수가 JS보다 유리하다
1. JS에 비해 어렵다.
JavaScript 1. 다른 언어에 비해 쉽다.
2. 적은 양의 코딩을 할 때 쉽고 빠르게 가능
1. 런타임 시 오류가 검출
2. 프로젝트 사이즈가 커지면 유지보수가 어렵다.

 

👉 유지보수가 유리한 이유

const 가렌 = {
	position: '탑',
    nation: '데마시아',
};

console.log(가렌.age);

- 에러 발생

정적 타입 언어인 TS는 IDE에서 가렌의 타입을 알기에 에러를 발생시킨다.

동적 타입 언어인 JS는 IDE에서 알 수 없다.

 

https://www.typescriptlang.org/ko/docs/handbook/typescript-from-scratch.html

 

Documentation - TypeScript for the New Programmer

Learn TypeScript from scratch

www.typescriptlang.org

 

728x90

댓글