[TypeScript] 00.Introduction

JourniYoon·2022년 7월 25일
0

TypeScript

목록 보기
1/1
post-thumbnail

왜 배울까?

타입스크립트는 타입 안정성덕분에 런타임 환경에서 발생하는 오류를 줄여준다.

Example

// Ex 1. 서로 다른 타입들 간의 허용
let sum = [1,2,3] + 'hi';
console.log(sum); // '1,2,3hi'
// Ex 2. 런타임에서의 오류 확인
const player = {
  name: 'journi',
  age: 10
}
player.hello();
// 지정되지 않은 속성을 사용하는 코드임에도 바로 오류를 확인할 수 없다.
// 코드가 실행되어야 비로소 오류 확인이 가능하다.

// Ex 3. 지정한 인수 개수를 충족하지 않은 경우
function sum (a, b) {
  return a + b;
}
sum('xxxxxxxxxxx') // 'xxxxxxxxxxxundefined'
// 어떻게든 함수를 실행시켜주고 있다.

어떻게 작동할까?

컴파일을 통해 바이너리 코드, 어셈블리 코드, 바이트 코드 등으로 변환되는 것이 아닌,
자바스크립트로 변환된다. 위에서 '자바스크립트는 위험하고, 타입스크립트는 안정적이야'라고 이야기했는데, 결국 자바스크립트로 변하면 안정적이지 않다고 생각할 수 있다. 그러나 타입스크립트는 자바스크립트로 변환되기 전에 미리 체크하고 아래 사진처럼 오류를 알려준다.

사용자는 코드를 작성하는 동시에 오류를 확인하고 수정할 수 있다.

암시적 타입 vs. 명시적 타입

let a = 'hello'; // 암시적 타입
let b : string = 'bye'; // 명시적 타입

a는 타입스크립트 내에서 typescript checker가 알아서 문자열로 추론해준다.
b처럼 타입을 직접 문자열로 명시해줄 수도 있다.

타입스크립트는 타입 안정성을 목적으로 사용하는 언어이므로 명시적인 방법을 사용해야 하지 않을까? 하지만 수업에서는 타입스크립트가 추론하도록 두는 편이 좋다고 한다. 추후 배우면서 생각에 보완이 필요한 지점이다.

0개의 댓글