Typescript

박선우·2023년 1월 25일
0

CS 스터디

목록 보기
29/53
post-thumbnail

🌼 Typescript

  • Javascript에 타입을 부여한 언어로 Javascript의 확장된 언어.
  • TypeScript는 기존의 자바스크립트(ES5) 문법을 그대로 사용할 수 있다.

1️⃣ Javascript의 문제점

  • 존재하지 않는 프로퍼티의 접근을 허용합니다
const obj = {a: "apple", b: "banana"}

conscole.log(obj.a ,obj.c) // apple, undefined
  • Javascript는 다른 언어와는 다르게 오류를 코드 실행전에 알려주지 않기 때문에 런타임에 코드오류 발생

2️⃣ 정적 타입 검사자 (TypeScript: A Static Type Checker)

  • 프로그램을 실행시키지 않으면서 코드의 오류검출 -> 정적 타입
  • 어떤 것이 오류인지와 어떤 것이 연산 되는 값에 기인하지 않음 -> 정적 타입 검사
const obj = {width:10, height: 15}

const area = obj.width * obj,heigth

// javascript
NaN

// typeScript
@errors: 2551

⛔️ 구문 (Syntax)

  • JS의 구문이 허용되는, JavaScript의 상위 집합 언어이다.
// 구문 에러 )이 없다.
// @errors : 1005
console.log("4"
  • 작동하는 JavaScript 코드를 TypeScript 파일에 넣어도 잘 작동한다.

⛔️ 타입 (Types)

  • 다른 종류의 값들을 사용할 수 있는 방법이 추가된, 타입이 있는 상위 집합
  • 구문적으로 옳은 JavaScript라서 NaN 을 출력한다
  • TypeScript는 배열로 숫자를 나누는 연산이 옳지 않다고 판단하여 오류발생
console.log(4/[])

// javascript
NaN

// typescript
@errors : 2363

⛔️ 런타입 특성(Runtime Behavior)

  • JavaScript의 런타임 특성을 가진 프로그래밍 언어입니다.
  • JavaScript 코드의 런타임 특성을 절대 변화시키지 않는다.
  • JavaScript -> TypeScript로 변화 해도 같은 방식으로 실행가능

⛔️ 삭제된 타입 (Erased Types)

  • TypeScript의 코드가 한번 컴파일 되면, 결과로 나온 JS코드에는 타입 정보가 없다.
  • 컴파일 도중에 타입 오류가 표출될 수 있지만, 타입 시스템 자체는 프로그램이 실행될 때 작동하는 방식과 관련이 없다.
  • JavaScript 프로그램과 같은 라이브러리 를 사용한다.

참조

profile
코린이 열심히 배우자!

0개의 댓글