SlideShare a Scribd company logo
Type script
이것은 무엇을까?
권동준
Type script 란?
1. MS에서 만든 scrip로 C++/C#과 유사하다.
2. 타입스크립트는 자바스크립트 슈퍼셋 언어다.
3. 모든 브라우저, 호스트, 모든 OS에서 호환이 되며, 오픈소스다.
4. 확장성을 위해 ts를 js로 컴파일 하여 사용한다.
5. ES6에 기반을 두고 있다.
6. 많은 IDE 에서 지원을 하고 있다.
설치
설치는 총 2가지의 방법이 있다.
1. Node Js를 이용한 설치
npm install –g typescript
2. Visual Studio plugins
Visual Studio 2015, 2013, code
Sublime Text
Atom
Eclipse
Emacs
WebStorm
Vim
타입 주석(Type annotation)
아래와 같이(: 변수타입) 타입 주석(Type annotations)을 사용한다.
1. boolean
2. number
3. string
4. array
- var array: number[] = [1,2,3];
- var array: Array<number> = [1,2,3];
5. enum
- C#과 Object-c 같은 언어와 마찬가지로 enum제공
- 값의 할당이 없으면 0으로 시작.
- 시작 값의 변경은 첫번째 변수에만 값을 할당해주면 된다.
* enum Week {sunday = 1, monday, tuesday}
- enum값 참조
* var week: Week = Week.Monday -> 1로 출력 (시작이 0일경우)
* var day: string = Weel[1] -> monday 출력
6. any
7. void (함수 반환에서 사용)
var 변수명 : 변수타입 = 값
function getter() : string {
return “hello world”
}
1. 변수 값 선언
2. 함수의 리턴
function getter(person: string) : string {
return `hello ${person}`
}
3. 함수의 인자값
인터페이스(interface)
변수 값의 이름과 타입을 정의해주는 역할을 한다.
아래와 같이 진행 했을 시 size가 없어서 typescript에서 에러는 나지만 size 값까지 잘 출력이 된다.
인터페이스 객체를 속성으로 담을 수도 있지만 함수 자체를 속성으로 담을 수도 있다.
interface SearchFunc {
(source: string, subString: string): boolean;
}
let mySearch: SearchFunc;
mySearch = (source: string, subString: string) => {
var result = source.search(subString);
if (result == -1) {
return false;
}
else {
return true;
}
};
console.log(mySearch("aaaab", "b"));
var mySearch; // interface call
mySearch = function (source, subString) {
var result = source.search(subString);
if (result == -1) {
return false;
}
else {
return true;
}
};
console.log(mySearch("aaaab", "b"));
//# sourceMappingURL=helloWord.js.map
function printLabel(labelledObj) {
console.log(labelledObj.label);
}
var myObj = { size: 10, label: "Size 10 Object" };
printLabel(myObj);
//# sourceMappingURL=helloWord.js.map
interface LabelledValue {
label: string;
}
function printLabel(labelledObj: LabelledValue) {
console.log(labelledObj.label);
}
let myObj = {size: 10, label: "Size 10 Object"};
printLabel(myObj);
클래스(Class)
기존 자바스크립트에 있는 function & prototy 기반의 상속은
OOP를 좀더 편하게 해주는 거라고 생각하면 된다.
class Greeter {
/* 타입어노테이션이 추가 된 것 말고는 ES6와 똑같다. */
greeting: string;
constructor(message: string) {
this.greeting = message;
}
greet() {
return "Hello, " + this.greeting;
}
}
let greeter = new Greeter("world");
console.log(greeter.greet());
var Greeter = (function () {
function Greeter(message) {
this.greeting = message;
}
Greeter.prototype.greet = function () {
return "Hello, " + this.greeting;
};
return Greeter;
}());
var greeter = new Greeter("world");
console.log(greeter.greet());
//# sourceMappingURL=helloWord.js.map
클래스(Class) - 상속
class Animal {
name:string;
constructor(theName: string) {
this.name = theName;
}
/* meters값이 없으면 0로 셋팅 */
move(meters: number = 0) {
console.log(this.name + " moved " + meters + "m.");
}
}
class Snake extends Animal {
constructor(name: string) {
super(name);
}
/* meters값이 없으면 5로 셋팅 */
move(meters = 5) {
console.log("Slithering...");
super.move(meters);
}
}
let snake = new Snake('test');
snake.move();
기본적인 상속과 동일하게 메소드 오버라이드부터 super등의 키워드 사용가능하다.
모듈(Module)
관련된 인터페이스, 클래스, 함수 등을 묶어서 관리해준다.
export module Sayings {
export class Greeter {
greeting: string;
constructor(message: string) {
this.greeting = message;
}
greet() {
return `Hello, ${this.greeting}`;
}
}
}
helloWord.ts
import {Sayings} from "./helloWord";
let sayings = new Sayings.Greeter("Kwon");
console.log(sayings.greet());
import.ts
결과 값으로 Hello, Kwon 출력
제네릭(Generics)
처음부터 데이터 타입을 정해놓지 않고 임의타입으로 명시해준 후 나중에
직접적으로 해당 구문을 사용할 때 지정하여 사용하는 형태
function identity<T>(arg: T): T {
return arg;
}
let myArgNumber = identity<number>(32);
console.log(`${typeof myArgNumber} type: ${myArgNumber}`); // number type: 32;
let myArgString = identity<string>("32");
console.log(`${typeof myArgString} type: ${myArgString}`); // string type: 32;
tsconfig.json
Typescript 1.5부터 추가된 것 Typescript 설정과 Exclude 하고 싶은 폴더나 파일, Compile 옵션, File 옵션등을 설정 할 수 있다.
TypeScript의 컴파일러인 tsc 명령 수행시 참조한다.
{
"compilerOptions": {
"module": "commonjs",
"target": "es5",
"sourceMap": true
},
"exclude": [
"node_modules"
],
"files": [
"core.ts",
"sys.ts",
"types.ts",
"scanner.ts",
"parser.ts",
"utilities.ts"
]
}
http://www.typescriptlang.org/docs/handbook/tsconfig.json.html
Typings
쉽게 말해서 외부라이브로리 혹은 프레임워크를 좀더 편하게 쓸 수 있게 가이드 하는 역할이다.
- tsd라는 것을 사용하였지만 지금은 Typings를 사용하고 있다. angular2.0에서도 Typings를 사용하고 있다.
1. typings 설치
- npm install typings –g
2. typings 사용한다고 정의
- typings init
3. 사용할 typings 설치
- typings install jquery --ambient --save
Angular2 시작하기
1. NodeJs 설치
2. 프로젝트 만들기(폴더 만들기)
3. tsconfig.json 설정(타입스크립트 설정)
4. typings.json 설정 (typings 설정)
5. package.json 설정 (npm 설정)
6. npm install
https://angular.io/docs/ts/latest/quickstart.html

More Related Content

What's hot (20)

[TECHCON 2019: MOBILE - Android]2.예제에서는 알려주지 않는 Model 이야기
[TECHCON 2019: MOBILE - Android]2.예제에서는 알려주지 않는 Model 이야기
NAVER Engineering
 
[1B4]안드로이드 동시성_프로그래밍
[1B4]안드로이드 동시성_프로그래밍
NAVER D2
 
Javascript
Javascript
Hong Hyo Sang
 
Redux
Redux
NAVER Engineering
 
Javascript 교육자료 pdf
Javascript 교육자료 pdf
Hyosang Hong
 
ReactJS | 서버와 클라이어트에서 동시에 사용하는
ReactJS | 서버와 클라이어트에서 동시에 사용하는
Taegon Kim
 
Web Components 101 polymer & brick
Web Components 101 polymer & brick
yongwoo Jeon
 
AngularJS의 개발방식에 대하여
AngularJS의 개발방식에 대하여
Jin wook
 
Dependency Injection 소개
Dependency Injection 소개
beom kyun choi
 
Nodejs, PhantomJS, casperJs, YSlow, expressjs
Nodejs, PhantomJS, casperJs, YSlow, expressjs
기동 이
 
[11]Android DataBinding : 기초에서 고급까지
[11]Android DataBinding : 기초에서 고급까지
NAVER Engineering
 
프론트엔드스터디 E05 js closure oop
프론트엔드스터디 E05 js closure oop
Young-Beom Rhee
 
1.Startup JavaScript - 프로그래밍 기초
1.Startup JavaScript - 프로그래밍 기초
Circulus
 
골때리는 자바스크립트 발표자료
골때리는 자바스크립트 발표자료
욱진 양
 
Javascript 조금 더 잘 알기
Javascript 조금 더 잘 알기
jongho jeong
 
진짜기초 Node.js
진짜기초 Node.js
Woo Jin Kim
 
파이썬 언어 기초
파이썬 언어 기초
beom kyun choi
 
MVP 패턴 소개
MVP 패턴 소개
beom kyun choi
 
0.javascript기본(~3일차내)
0.javascript기본(~3일차내)
Sung-hoon Ma
 
EcmaScript6(2015) Overview
EcmaScript6(2015) Overview
yongwoo Jeon
 
[TECHCON 2019: MOBILE - Android]2.예제에서는 알려주지 않는 Model 이야기
[TECHCON 2019: MOBILE - Android]2.예제에서는 알려주지 않는 Model 이야기
NAVER Engineering
 
[1B4]안드로이드 동시성_프로그래밍
[1B4]안드로이드 동시성_프로그래밍
NAVER D2
 
Javascript 교육자료 pdf
Javascript 교육자료 pdf
Hyosang Hong
 
ReactJS | 서버와 클라이어트에서 동시에 사용하는
ReactJS | 서버와 클라이어트에서 동시에 사용하는
Taegon Kim
 
Web Components 101 polymer & brick
Web Components 101 polymer & brick
yongwoo Jeon
 
AngularJS의 개발방식에 대하여
AngularJS의 개발방식에 대하여
Jin wook
 
Dependency Injection 소개
Dependency Injection 소개
beom kyun choi
 
Nodejs, PhantomJS, casperJs, YSlow, expressjs
Nodejs, PhantomJS, casperJs, YSlow, expressjs
기동 이
 
[11]Android DataBinding : 기초에서 고급까지
[11]Android DataBinding : 기초에서 고급까지
NAVER Engineering
 
프론트엔드스터디 E05 js closure oop
프론트엔드스터디 E05 js closure oop
Young-Beom Rhee
 
1.Startup JavaScript - 프로그래밍 기초
1.Startup JavaScript - 프로그래밍 기초
Circulus
 
골때리는 자바스크립트 발표자료
골때리는 자바스크립트 발표자료
욱진 양
 
Javascript 조금 더 잘 알기
Javascript 조금 더 잘 알기
jongho jeong
 
진짜기초 Node.js
진짜기초 Node.js
Woo Jin Kim
 
파이썬 언어 기초
파이썬 언어 기초
beom kyun choi
 
0.javascript기본(~3일차내)
0.javascript기본(~3일차내)
Sung-hoon Ma
 
EcmaScript6(2015) Overview
EcmaScript6(2015) Overview
yongwoo Jeon
 

Viewers also liked (20)

Angular2를 활용한 컴포넌트 중심의 개발
Angular2를 활용한 컴포넌트 중심의 개발
Jin wook
 
Angular 2 어디까지 왔을까
Angular 2 어디까지 왔을까
장현 한
 
Angularjs 도입 선택 가이드
Angularjs 도입 선택 가이드
NAVER D2
 
Angular2를 위한 컴포넌트 분석과 개발
Angular2를 위한 컴포넌트 분석과 개발
Jin wook
 
Angular를 활용한 웹 프론트단 개발과 2.0에서 달라진점
Angular를 활용한 웹 프론트단 개발과 2.0에서 달라진점
Jeado Ko
 
AngularJS 2, version 1 and ReactJS
AngularJS 2, version 1 and ReactJS
Kenneth Ceyer
 
[XECon+PHPFest 2014] jQuery 개발자에서 AngularJS 개발자 되기
[XECon+PHPFest 2014] jQuery 개발자에서 AngularJS 개발자 되기
Jeado Ko
 
Angular2 NgModule
Angular2 NgModule
Peter YoungSik Yun
 
FalsyValues. Dmitry Soshnikov - ECMAScript 6
FalsyValues. Dmitry Soshnikov - ECMAScript 6
Dmitry Soshnikov
 
Ionic adventures - Hybrid Mobile App Development rocks
Ionic adventures - Hybrid Mobile App Development rocks
Juarez Filho
 
K모바일발표 111026 하이브리드ux_배포용
K모바일발표 111026 하이브리드ux_배포용
jinwook shin
 
Bootstrap 살펴보기
Bootstrap 살펴보기
영배 현
 
Angular 1 + es6
Angular 1 + es6
장현 한
 
[XECon2016] C-3 이현석 팀장들이 꼽은 신입 PHP 개발자가 가급적 빨리 알았으면 하는 것들
[XECon2016] C-3 이현석 팀장들이 꼽은 신입 PHP 개발자가 가급적 빨리 알았으면 하는 것들
XpressEngine
 
Introduction to Type Script by Sam Goldman, SmartLogic
Introduction to Type Script by Sam Goldman, SmartLogic
SmartLogic
 
Type script
Type script
LearningTech
 
[XECon2016] B-4 변종원 CodeIgniter와 PHP7
[XECon2016] B-4 변종원 CodeIgniter와 PHP7
XpressEngine
 
JavaScript와 TypeScript의 으리 있는 만남
JavaScript와 TypeScript의 으리 있는 만남
영욱 김
 
Da JavaScript a TypeScript
Da JavaScript a TypeScript
Roberto Messora
 
[H3 2012] 하이브리드앱 제작 사례 공유 - 푸딩얼굴인식 3.0
[H3 2012] 하이브리드앱 제작 사례 공유 - 푸딩얼굴인식 3.0
KTH, 케이티하이텔
 
Angular2를 활용한 컴포넌트 중심의 개발
Angular2를 활용한 컴포넌트 중심의 개발
Jin wook
 
Angular 2 어디까지 왔을까
Angular 2 어디까지 왔을까
장현 한
 
Angularjs 도입 선택 가이드
Angularjs 도입 선택 가이드
NAVER D2
 
Angular2를 위한 컴포넌트 분석과 개발
Angular2를 위한 컴포넌트 분석과 개발
Jin wook
 
Angular를 활용한 웹 프론트단 개발과 2.0에서 달라진점
Angular를 활용한 웹 프론트단 개발과 2.0에서 달라진점
Jeado Ko
 
AngularJS 2, version 1 and ReactJS
AngularJS 2, version 1 and ReactJS
Kenneth Ceyer
 
[XECon+PHPFest 2014] jQuery 개발자에서 AngularJS 개발자 되기
[XECon+PHPFest 2014] jQuery 개발자에서 AngularJS 개발자 되기
Jeado Ko
 
FalsyValues. Dmitry Soshnikov - ECMAScript 6
FalsyValues. Dmitry Soshnikov - ECMAScript 6
Dmitry Soshnikov
 
Ionic adventures - Hybrid Mobile App Development rocks
Ionic adventures - Hybrid Mobile App Development rocks
Juarez Filho
 
K모바일발표 111026 하이브리드ux_배포용
K모바일발표 111026 하이브리드ux_배포용
jinwook shin
 
Bootstrap 살펴보기
Bootstrap 살펴보기
영배 현
 
Angular 1 + es6
Angular 1 + es6
장현 한
 
[XECon2016] C-3 이현석 팀장들이 꼽은 신입 PHP 개발자가 가급적 빨리 알았으면 하는 것들
[XECon2016] C-3 이현석 팀장들이 꼽은 신입 PHP 개발자가 가급적 빨리 알았으면 하는 것들
XpressEngine
 
Introduction to Type Script by Sam Goldman, SmartLogic
Introduction to Type Script by Sam Goldman, SmartLogic
SmartLogic
 
[XECon2016] B-4 변종원 CodeIgniter와 PHP7
[XECon2016] B-4 변종원 CodeIgniter와 PHP7
XpressEngine
 
JavaScript와 TypeScript의 으리 있는 만남
JavaScript와 TypeScript의 으리 있는 만남
영욱 김
 
Da JavaScript a TypeScript
Da JavaScript a TypeScript
Roberto Messora
 
[H3 2012] 하이브리드앱 제작 사례 공유 - 푸딩얼굴인식 3.0
[H3 2012] 하이브리드앱 제작 사례 공유 - 푸딩얼굴인식 3.0
KTH, 케이티하이텔
 
Ad

Similar to Angular2 가기전 Type script소개 (20)

04. interface in typescript
04. interface in typescript
Han JaeYeab
 
[하코사세미나]미리보는 대규모 자바스크립트 어플리케이션 개발
[하코사세미나]미리보는 대규모 자바스크립트 어플리케이션 개발
정석 양
 
01. basic types
01. basic types
Han JaeYeab
 
03. function in typescript
03. function in typescript
Han JaeYeab
 
ES6 for Node.js Study 5주차
ES6 for Node.js Study 5주차
승빈이네 공작소
 
Javascript
Javascript
Joshua Yoon
 
코드잇-타스-특강.pdf
코드잇-타스-특강.pdf
이정환
 
자바스크립트 클래스의 프로토타입(prototype of class)
자바스크립트 클래스의 프로토타입(prototype of class)
탑크리에듀(구로디지털단지역3번출구 2분거리)
 
[Td 2015]java script에게 형(type)이 생겼어요. typescript(박용준)
[Td 2015]java script에게 형(type)이 생겼어요. typescript(박용준)
Sang Don Kim
 
자바스크립트 프로토타입 및 클래스
자바스크립트 프로토타입 및 클래스
Lee Dong Wook
 
[ES6] 6. Class
[ES6] 6. Class
Han JaeYeab
 
[IT기술칼럼#2] 고급자바스크립트 for AngularJS, React_고급자바스크립트,AngularJS,React전문교육학원
[IT기술칼럼#2] 고급자바스크립트 for AngularJS, React_고급자바스크립트,AngularJS,React전문교육학원
탑크리에듀(구로디지털단지역3번출구 2분거리)
 
Es2015 Simple Overview
Es2015 Simple Overview
Kim Hunmin
 
자바스크립트 패턴 3장
자바스크립트 패턴 3장
Software in Life
 
Start IoT with JavaScript - 7.프로토타입
Start IoT with JavaScript - 7.프로토타입
Park Jonggun
 
ES6 for Node.js Study
ES6 for Node.js Study
승빈이네 공작소
 
JavaScript Patterns - Chapter 3. Literals and Constructors
JavaScript Patterns - Chapter 3. Literals and Constructors
Hyuncheol Jeon
 
타입스크립트 잘 사용하기
타입스크립트 잘 사용하기
SanghoYun
 
스파르탄스터디 E04 Javascript 객체지향, 함수형 프로그래밍
스파르탄스터디 E04 Javascript 객체지향, 함수형 프로그래밍
Young-Beom Rhee
 
04. interface in typescript
04. interface in typescript
Han JaeYeab
 
[하코사세미나]미리보는 대규모 자바스크립트 어플리케이션 개발
[하코사세미나]미리보는 대규모 자바스크립트 어플리케이션 개발
정석 양
 
03. function in typescript
03. function in typescript
Han JaeYeab
 
코드잇-타스-특강.pdf
코드잇-타스-특강.pdf
이정환
 
[Td 2015]java script에게 형(type)이 생겼어요. typescript(박용준)
[Td 2015]java script에게 형(type)이 생겼어요. typescript(박용준)
Sang Don Kim
 
자바스크립트 프로토타입 및 클래스
자바스크립트 프로토타입 및 클래스
Lee Dong Wook
 
[IT기술칼럼#2] 고급자바스크립트 for AngularJS, React_고급자바스크립트,AngularJS,React전문교육학원
[IT기술칼럼#2] 고급자바스크립트 for AngularJS, React_고급자바스크립트,AngularJS,React전문교육학원
탑크리에듀(구로디지털단지역3번출구 2분거리)
 
Es2015 Simple Overview
Es2015 Simple Overview
Kim Hunmin
 
자바스크립트 패턴 3장
자바스크립트 패턴 3장
Software in Life
 
Start IoT with JavaScript - 7.프로토타입
Start IoT with JavaScript - 7.프로토타입
Park Jonggun
 
JavaScript Patterns - Chapter 3. Literals and Constructors
JavaScript Patterns - Chapter 3. Literals and Constructors
Hyuncheol Jeon
 
타입스크립트 잘 사용하기
타입스크립트 잘 사용하기
SanghoYun
 
스파르탄스터디 E04 Javascript 객체지향, 함수형 프로그래밍
스파르탄스터디 E04 Javascript 객체지향, 함수형 프로그래밍
Young-Beom Rhee
 
Ad

Angular2 가기전 Type script소개

  • 2. Type script 란? 1. MS에서 만든 scrip로 C++/C#과 유사하다. 2. 타입스크립트는 자바스크립트 슈퍼셋 언어다. 3. 모든 브라우저, 호스트, 모든 OS에서 호환이 되며, 오픈소스다. 4. 확장성을 위해 ts를 js로 컴파일 하여 사용한다. 5. ES6에 기반을 두고 있다. 6. 많은 IDE 에서 지원을 하고 있다.
  • 3. 설치 설치는 총 2가지의 방법이 있다. 1. Node Js를 이용한 설치 npm install –g typescript 2. Visual Studio plugins Visual Studio 2015, 2013, code Sublime Text Atom Eclipse Emacs WebStorm Vim
  • 4. 타입 주석(Type annotation) 아래와 같이(: 변수타입) 타입 주석(Type annotations)을 사용한다. 1. boolean 2. number 3. string 4. array - var array: number[] = [1,2,3]; - var array: Array<number> = [1,2,3]; 5. enum - C#과 Object-c 같은 언어와 마찬가지로 enum제공 - 값의 할당이 없으면 0으로 시작. - 시작 값의 변경은 첫번째 변수에만 값을 할당해주면 된다. * enum Week {sunday = 1, monday, tuesday} - enum값 참조 * var week: Week = Week.Monday -> 1로 출력 (시작이 0일경우) * var day: string = Weel[1] -> monday 출력 6. any 7. void (함수 반환에서 사용) var 변수명 : 변수타입 = 값 function getter() : string { return “hello world” } 1. 변수 값 선언 2. 함수의 리턴 function getter(person: string) : string { return `hello ${person}` } 3. 함수의 인자값
  • 5. 인터페이스(interface) 변수 값의 이름과 타입을 정의해주는 역할을 한다. 아래와 같이 진행 했을 시 size가 없어서 typescript에서 에러는 나지만 size 값까지 잘 출력이 된다. 인터페이스 객체를 속성으로 담을 수도 있지만 함수 자체를 속성으로 담을 수도 있다. interface SearchFunc { (source: string, subString: string): boolean; } let mySearch: SearchFunc; mySearch = (source: string, subString: string) => { var result = source.search(subString); if (result == -1) { return false; } else { return true; } }; console.log(mySearch("aaaab", "b")); var mySearch; // interface call mySearch = function (source, subString) { var result = source.search(subString); if (result == -1) { return false; } else { return true; } }; console.log(mySearch("aaaab", "b")); //# sourceMappingURL=helloWord.js.map function printLabel(labelledObj) { console.log(labelledObj.label); } var myObj = { size: 10, label: "Size 10 Object" }; printLabel(myObj); //# sourceMappingURL=helloWord.js.map interface LabelledValue { label: string; } function printLabel(labelledObj: LabelledValue) { console.log(labelledObj.label); } let myObj = {size: 10, label: "Size 10 Object"}; printLabel(myObj);
  • 6. 클래스(Class) 기존 자바스크립트에 있는 function & prototy 기반의 상속은 OOP를 좀더 편하게 해주는 거라고 생각하면 된다. class Greeter { /* 타입어노테이션이 추가 된 것 말고는 ES6와 똑같다. */ greeting: string; constructor(message: string) { this.greeting = message; } greet() { return "Hello, " + this.greeting; } } let greeter = new Greeter("world"); console.log(greeter.greet()); var Greeter = (function () { function Greeter(message) { this.greeting = message; } Greeter.prototype.greet = function () { return "Hello, " + this.greeting; }; return Greeter; }()); var greeter = new Greeter("world"); console.log(greeter.greet()); //# sourceMappingURL=helloWord.js.map
  • 7. 클래스(Class) - 상속 class Animal { name:string; constructor(theName: string) { this.name = theName; } /* meters값이 없으면 0로 셋팅 */ move(meters: number = 0) { console.log(this.name + " moved " + meters + "m."); } } class Snake extends Animal { constructor(name: string) { super(name); } /* meters값이 없으면 5로 셋팅 */ move(meters = 5) { console.log("Slithering..."); super.move(meters); } } let snake = new Snake('test'); snake.move(); 기본적인 상속과 동일하게 메소드 오버라이드부터 super등의 키워드 사용가능하다.
  • 8. 모듈(Module) 관련된 인터페이스, 클래스, 함수 등을 묶어서 관리해준다. export module Sayings { export class Greeter { greeting: string; constructor(message: string) { this.greeting = message; } greet() { return `Hello, ${this.greeting}`; } } } helloWord.ts import {Sayings} from "./helloWord"; let sayings = new Sayings.Greeter("Kwon"); console.log(sayings.greet()); import.ts 결과 값으로 Hello, Kwon 출력
  • 9. 제네릭(Generics) 처음부터 데이터 타입을 정해놓지 않고 임의타입으로 명시해준 후 나중에 직접적으로 해당 구문을 사용할 때 지정하여 사용하는 형태 function identity<T>(arg: T): T { return arg; } let myArgNumber = identity<number>(32); console.log(`${typeof myArgNumber} type: ${myArgNumber}`); // number type: 32; let myArgString = identity<string>("32"); console.log(`${typeof myArgString} type: ${myArgString}`); // string type: 32;
  • 10. tsconfig.json Typescript 1.5부터 추가된 것 Typescript 설정과 Exclude 하고 싶은 폴더나 파일, Compile 옵션, File 옵션등을 설정 할 수 있다. TypeScript의 컴파일러인 tsc 명령 수행시 참조한다. { "compilerOptions": { "module": "commonjs", "target": "es5", "sourceMap": true }, "exclude": [ "node_modules" ], "files": [ "core.ts", "sys.ts", "types.ts", "scanner.ts", "parser.ts", "utilities.ts" ] } http://www.typescriptlang.org/docs/handbook/tsconfig.json.html
  • 11. Typings 쉽게 말해서 외부라이브로리 혹은 프레임워크를 좀더 편하게 쓸 수 있게 가이드 하는 역할이다. - tsd라는 것을 사용하였지만 지금은 Typings를 사용하고 있다. angular2.0에서도 Typings를 사용하고 있다. 1. typings 설치 - npm install typings –g 2. typings 사용한다고 정의 - typings init 3. 사용할 typings 설치 - typings install jquery --ambient --save
  • 12. Angular2 시작하기 1. NodeJs 설치 2. 프로젝트 만들기(폴더 만들기) 3. tsconfig.json 설정(타입스크립트 설정) 4. typings.json 설정 (typings 설정) 5. package.json 설정 (npm 설정) 6. npm install https://angular.io/docs/ts/latest/quickstart.html