기록

TypeScript

해은 2021. 1. 22. 20:46

TypeScript 란?

TypeScript 또한 자바스크립트 대체 언어의 하나로써 자바스크립트(ES5)의 Superset(상위확장)이다.

TypeScript는 ES5의 Superset이므로 기존의 자바스크립트(ES5) 문법을 그대로 사용할 수 있다. 또한, ES6의 새로운 기능들을 사용하기 위해 Babel과 같은 별도 트랜스파일러(Transpiler)를 사용하지 않아도 ES6의 새로운 기능을 기존의 자바스크립트 엔진(현재의 브라우저 또는 Node.js)에서 실행할 수 있다.

 

이후 ECMAScript의 업그레이드에 따른 새로운 기능을 지속적으로 추가할 예정이여서 매년 업그레이드될 ECMAScript의 표준을 따라갈 수 있는 좋은 수단이 될 것이다.

 

TypeScript의 장점

function sum(a, b) {
  return a + b;
}

위 코드는 코드상으로는 어떤 타입의 인수를 전달하여야 하는지, 어떤 타입의 반환값을 리턴해야 하는지 명확하지 않다.

function sum(a: number, b: number) {
  return a + b;
}

sum('x', 'y');
// error TS2345: Argument of type '"x"' is not assignable to parameter of type 'number'.

타입스크립트는 위와 같이 정적 타입을 지원하므로 컴파일 단계에서 오류를 포착할 수 있는 장점이 있다.

 

개발환경 구축

$ npm install -g typescript

터미널(윈도우의 경우 커맨드창)에서 npm을 사용하여 TypeScript를 전역에 설치한다.

TypeScript 컴파일러(tsc)는 TypeScript 파일(.ts)을 자바스크립트 파일로 트랜스파일링한다.

// person.ts
class Person {
  private name: string;

  constructor(name: string) {
    this.name = name;
  }

  sayHello() {
    return "Hello, " + this.name;
  }
}

const person = new Person('Lee');

console.log(person.sayHello());

위와 같은 타입스크립트로 작성한 .ts 파일을 트랜스파일링을 실행시키면

$ tsc person
// person.js
var Person = /** @class */ (function () {
    function Person(name) {
        this.name = name;
    }
    Person.prototype.sayHello = function () {
        return "Hello, " + this.name;
    };
    return Person;
}());
var person = new Person('Lee');
console.log(person.sayHello());

위와 같은 자바스크립트 파일 .js 가 생성이 된다.

이때 트랜스파일링된 person.js의 자바스크립트 버전은 ES3 이다.

 

출처: poiemaweb.com/typescript-introduction

'기록' 카테고리의 다른 글

브라우저 렌더링  (0) 2021.06.10
BFC(Block Formatting Context)  (0) 2021.02.05
JAM Stack  (0) 2021.01.08
[React] React Hook  (0) 2020.12.21
CSS Framework 목록  (0) 2020.12.18