타입스크립트 (TypeScript) 기초강좌

 

소개

TypeScript는 자바스크립트를 개발자가 원하는 방향으로 사용할 수 있게 도와줍니다. 타입스크립트는 자바스크립트 슈퍼셋 언어입니다. 어떠한 브라우저, 호스트, OS, 오픈소스에서도 사용이 가능합니다. 몇가지 특징에 대해 알아보도록 하겠습니다. 1) Node.js 패키지를 통하여 타입스크립트 컴파일러를 설치할 수 있습니다. 2) 비쥬얼 스튜디오 2013을 비롯하여, 웹스톰, 아톰, 서브라임 텍스트, 이클립스등에서 에디터가 가능합니다. 3) 깃허브에서 개발되고 있는 오픈소스입니다.

 

시작하기

타입스크립트를 설치하기 위해서는 두 가지 방법이 있습니다. NPM(Node.js package manager)를 사용. 또는, 비쥬얼 스튜디오 2012 플러그인을 사용하면 됩니다. 이번 포스팅에서는 NPM을 이용한 설치방법을 알아보도록 하겠습니다. 터미널을 실행한 후 아래와 같이 명령어를 입력해 주시면 됩니다.

npm install -g typescript 

 

그럼 이제, 확장자 명이 .ts인 타입스크립트를 .js로 컴파일러 하도록 하겠습니다. 우선 greeter.ts 파일을 생성한 후 아래와같이 자바스크립트 코드를 작성하도록 하겠습니다. 파일을 저장한 후, 터미널 커멘드 라인에 > tsc greeter.ts 를 실행하면 greeter.js라는 결과물이 나옵니다.

function greeter(person) {

    return "Hello, " + person;

}

 

var user = "Jane User";

 

document.body.innerHTML = greeter(user); 

 

TypeScript 사용하기

지금부터는, 기존에 작성했던 자바스크립트 코드를 타입스크립트를 이용해서 바꿔보도록 하겠습니다. 

1) greeter이라는 함수에 있는 person 인자와 함께 ":string"을 추가한다. 타입스크립트에서 타입 주석(type annotations)은 함수나 변수의 역할을 알려줍니다.

2) interface를 사용해서 firstname과 lastname이 있는 객체를 묘사합니다. 타입스크립트에서, 두 가지 타입은 양립할 수 있습니다.

3) 이제는 class를 사용하도록 하겠습니다. 타입스크립트는 "클래스 기반 객체 지향"인 ES6를 지원하고 있습니다. Student라는 클래스를 생성자 함수와 함께 생성합니다. 인지값에 public 사용은 자동적으로 프로퍼티를 만들어 줍니다. 

4) 아래와 같이 작성후 tsc greeter.ts 를 다시 실행하면 자바스크립트 파일로 변환됩니다.

5) index.html 파일을 생성한 후 아래 마크업 내용을 복사후 실행합니다.

 

(greeter.ts 파일)

class Student {

    fullname : string;

    constructor(public firstname, public middleinitial, public lastname) {

        this.fullname = firstname + " " + middleinitial + " " + lastname;

    }

}

 

interface Person {

    firstname: string;

    lastname: string;

}

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

 

function greeter(person : Person) {

    return "Hello, " + person.firstname + " " + person.lastname;

}

 

var user = new Student("Jane", "M.", "User");

 

document.body.innerHTML = greeter(user); 

 

(greeters.js 파일)

 

 var Student = (function () {

    function Student(firstname, middleinitial, lastname) {

        this.firstname = firstname;

        this.middleinitial = middleinitial;

        this.lastname = lastname;

        this.fullname = firstname + " " + middleinitial + " " + lastname;

    }

    return Student;

}());

function greeter(person) {

    return "Hello, " + person.firstname + " " + person.lastname;

}

var user = new Student("Jane", "M.", "User");

document.body.innerHTML = greeter(user);

 

(index.html 파일)

 

<!DOCTYPE html>

<html>

    <head><title>TypeScript Greeter</title></head>

    <body>

        <script src="greeter.js"></script>

    </body>

</html> 

 

드디어, 타입스크립트를 사용한 첫번째 어플리케이션이 완성되었습니다! 다음 포스팅에서는 타입스크립트에 사용되는 용어와 개념들을 정리하도록 하겠습니다.

 

[출처] http://m.blog.naver.com/love_junim/220643652716

 

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
1195 [ 一日30分 인생승리의 학습법] VBA Web Scraping: How Can VBA Be Used To Scrape Website Data? file 졸리운_곰 2024.04.13 3
1194 [ 一日30分 인생승리의 학습법] 윈도우 실행파일 구조(PE파일) file 졸리운_곰 2024.03.31 3
1193 [ 一日30分 인생승리의 학습법] [Analysis] PE(Portable Executable) 파일 포맷 공부 file 졸리운_곰 2024.03.31 3
1192 [ 一日30分 인생승리의 학습법] 성공하는 메타버스의 3가지 조건 file 졸리운_곰 2024.03.30 7
1191 [ 一日30分 인생승리의 학습법] REST, REST API, RESTful 과 HATEOAS file 졸리운_곰 2024.03.10 9
1190 [ 一日30分 인생승리의 학습법] 렌더링 삼형제 CSR, SSR, SSG 이해하기 file 졸리운_곰 2024.03.10 2
1189 [ 一日30分 인생승리의 학습법] 엑셀 VBA에서 셀레니움 사용을 위한 Selenium Basic 설치 file 졸리운_곰 2024.02.23 11
1188 [ 一日30分 인생승리의 학습법]500 Lines or Less Blockcode: A Visual Programming Toolkit : 500줄 이하의 블록코드: 시각적 프로그래밍 툴킷 졸리운_곰 2024.02.12 4
1187 [ 一日30分 인생승리의 학습법] 구글 클라이언트(앱) 아이디를 발급받으려면 어떻게 해야 하나요? 졸리운_곰 2024.01.28 3
1186 [ 一日30分 인생승리의 학습법] 빅뱅 프로젝트를 성공적으로 오픈하기 위한 팁 졸리운_곰 2023.12.27 16
1185 [ 一日30分 인생승리의 학습법]“빅뱅 전환보다 단계적 전환 방식이 이상적 애자일팀과 협업 쉽게 체질 개선을” file 졸리운_곰 2023.12.27 12
1184 [ 一日30分 인생승리의 학습법] Big-bang / phased 접근 file 졸리운_곰 2023.12.27 3
1183 [ 一日30分 인생승리의 학습법] CodeDragon 메뉴 데이터 전환의 개념 이해 - 데이터 전환의 개념, 데이터 전환방식, 데이터 전환방식 및 장단점 비교, 데이터전환 이후 검토해야 할 사항 졸리운_곰 2023.12.27 5
1182 [ 一日30分 인생승리의 학습법] 블록체인과 IPFS를 이용한 안전한 데이터 공유 플랫폼 - 분쟁 해결 시스템 file 졸리운_곰 2023.12.27 6
1181 [ 一日30分 인생승리의 학습법] 블록체인과 IPFS를 이용한 안전한 데이터 공유 플랫폼 - 개념과 리뷰 시스템 file 졸리운_곰 2023.12.27 4
1180 [ 一日30分 인생승리의 학습법] 소켓 CLOSE_WAIT 발생 현상 및 처리 방안 file 졸리운_곰 2023.12.03 7
1179 [ 一日30分 인생승리의 학습법] robots 설정하기 졸리운_곰 2023.12.03 3
1178 [ 一日30分 인생승리의 학습법] A Tutorial and Elementary Trajectory Model for the Differential Steering System of Robot Wheel Actuators : 로봇 휠 액츄에이터의 차동 조향 시스템에 대한 튜토리얼 및 기본 궤적 모델 file 졸리운_곰 2023.11.29 6
1177 [ 一日30分 인생승리의 학습법] Streamline Your MLOps Journey with CodeProject.AI Server : CodeProject.AI 서버로 MLOps 여정을 간소화하세요 file 졸리운_곰 2023.11.25 2
1176 [ 一日30分 인생승리의 학습법] Comparing Self-Hosted AI Servers: A Guide for Developers / : 자체 호스팅 AI 서버 비교: 개발자를 위한 가이드 file 졸리운_곰 2023.11.25 10
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED