🌼 Typescript
Javascript에 타입을 부여한 언어로 Javascript의 확장된 언어.
TypeScript는 기존의 자바스크립트(ES5) 문법을 그대로 사용할 수 있다.
1️⃣ Javascript의 문제점
const obj = {a: "apple", b: "banana"}
conscole.log(obj.a ,obj.c)
Javascript는 다른 언어와는 다르게 오류를 코드 실행전에 알려주지 않기 때문에 런타임에 코드오류 발생
2️⃣ 정적 타입 검사자 (TypeScript: A Static Type Checker)
프로그램을 실행시키지 않으면서 코드의 오류검출 -> 정적 타입
어떤 것이 오류인지와 어떤 것이 연산 되는 값에 기인하지 않음 -> 정적 타입 검사
const obj = {width:10, height: 15}
const area = obj.width * obj,heigth
NaN
@errors: 2551
⛔️ 구문 (Syntax)
JS의 구문이 허용되는, JavaScript의 상위 집합 언어이다.
console.log("4"
작동하는 JavaScript 코드를 TypeScript 파일에 넣어도 잘 작동한다.
⛔️ 타입 (Types)
다른 종류의 값들을 사용할 수 있는 방법이 추가된, 타입이 있는 상위 집합
구문적으로 옳은 JavaScript라서 NaN 을 출력한다
TypeScript는 배열로 숫자를 나누는 연산이 옳지 않다고 판단하여 오류발생
console.log(4/[])
NaN
@errors : 2363
⛔️ 런타입 특성(Runtime Behavior)
JavaScript의 런타임 특성을 가진 프로그래밍 언어입니다.
JavaScript 코드의 런타임 특성을 절대 변화시키지 않는다.
JavaScript -> TypeScript로 변화 해도 같은 방식으로 실행가능
⛔️ 삭제된 타입 (Erased Types)
TypeScript의 코드가 한번 컴파일 되면, 결과로 나온 JS코드에는 타입 정보가 없다.
컴파일 도중에 타입 오류가 표출될 수 있지만, 타입 시스템 자체는 프로그램이 실행될 때 작동하는 방식과 관련이 없다.
JavaScript 프로그램과 같은 라이브러리 를 사용한다.
참조