SlideShare a Scribd company logo
1 of 12
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

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

What's hot (20)

[TECHCON 2019: MOBILE - Android]2.예제에서는 알려주지 않는 Model 이야기
[TECHCON 2019: MOBILE - Android]2.예제에서는 알려주지 않는 Model 이야기[TECHCON 2019: MOBILE - Android]2.예제에서는 알려주지 않는 Model 이야기
[TECHCON 2019: MOBILE - Android]2.예제에서는 알려주지 않는 Model 이야기
 
[1B4]안드로이드 동시성_프로그래밍
[1B4]안드로이드 동시성_프로그래밍[1B4]안드로이드 동시성_프로그래밍
[1B4]안드로이드 동시성_프로그래밍
 
Javascript
JavascriptJavascript
Javascript
 
Redux
ReduxRedux
Redux
 
Javascript 교육자료 pdf
Javascript 교육자료 pdfJavascript 교육자료 pdf
Javascript 교육자료 pdf
 
ReactJS | 서버와 클라이어트에서 동시에 사용하는
ReactJS | 서버와 클라이어트에서 동시에 사용하는ReactJS | 서버와 클라이어트에서 동시에 사용하는
ReactJS | 서버와 클라이어트에서 동시에 사용하는
 
Web Components 101 polymer & brick
Web Components 101 polymer & brickWeb Components 101 polymer & brick
Web Components 101 polymer & brick
 
AngularJS의 개발방식에 대하여
AngularJS의 개발방식에 대하여AngularJS의 개발방식에 대하여
AngularJS의 개발방식에 대하여
 
Dependency Injection 소개
Dependency Injection 소개Dependency Injection 소개
Dependency Injection 소개
 
Nodejs, PhantomJS, casperJs, YSlow, expressjs
Nodejs, PhantomJS, casperJs, YSlow, expressjsNodejs, PhantomJS, casperJs, YSlow, expressjs
Nodejs, PhantomJS, casperJs, YSlow, expressjs
 
[11]Android DataBinding : 기초에서 고급까지
[11]Android DataBinding : 기초에서 고급까지[11]Android DataBinding : 기초에서 고급까지
[11]Android DataBinding : 기초에서 고급까지
 
프론트엔드스터디 E05 js closure oop
프론트엔드스터디 E05 js closure oop프론트엔드스터디 E05 js closure oop
프론트엔드스터디 E05 js closure oop
 
1.Startup JavaScript - 프로그래밍 기초
1.Startup JavaScript - 프로그래밍 기초1.Startup JavaScript - 프로그래밍 기초
1.Startup JavaScript - 프로그래밍 기초
 
골때리는 자바스크립트 발표자료
골때리는 자바스크립트 발표자료골때리는 자바스크립트 발표자료
골때리는 자바스크립트 발표자료
 
Javascript 조금 더 잘 알기
Javascript 조금 더 잘 알기Javascript 조금 더 잘 알기
Javascript 조금 더 잘 알기
 
진짜기초 Node.js
진짜기초 Node.js진짜기초 Node.js
진짜기초 Node.js
 
파이썬 언어 기초
파이썬 언어 기초파이썬 언어 기초
파이썬 언어 기초
 
MVP 패턴 소개
MVP 패턴 소개MVP 패턴 소개
MVP 패턴 소개
 
0.javascript기본(~3일차내)
0.javascript기본(~3일차내)0.javascript기본(~3일차내)
0.javascript기본(~3일차내)
 
EcmaScript6(2015) Overview
EcmaScript6(2015) OverviewEcmaScript6(2015) Overview
EcmaScript6(2015) Overview
 

Viewers also liked

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

Viewers also liked (20)

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

Similar to Angular2 가기전 Type script소개

Es2015 Simple Overview
Es2015 Simple OverviewEs2015 Simple Overview
Es2015 Simple OverviewKim Hunmin
 
스파르탄스터디 E04 Javascript 객체지향, 함수형 프로그래밍
스파르탄스터디 E04 Javascript 객체지향, 함수형 프로그래밍스파르탄스터디 E04 Javascript 객체지향, 함수형 프로그래밍
스파르탄스터디 E04 Javascript 객체지향, 함수형 프로그래밍Young-Beom Rhee
 
Ai C#세미나
Ai C#세미나Ai C#세미나
Ai C#세미나Astin Choi
 
Swift3 subscript inheritance initialization
Swift3 subscript inheritance initializationSwift3 subscript inheritance initialization
Swift3 subscript inheritance initializationEunjoo Im
 
자바스크립트 기초문법~함수기초
자바스크립트 기초문법~함수기초자바스크립트 기초문법~함수기초
자바스크립트 기초문법~함수기초진수 정
 
[Main Session] 미래의 Java 미리보기 - 앰버와 발할라 프로젝트를 중심으로
[Main Session] 미래의 Java 미리보기 - 앰버와 발할라 프로젝트를 중심으로[Main Session] 미래의 Java 미리보기 - 앰버와 발할라 프로젝트를 중심으로
[Main Session] 미래의 Java 미리보기 - 앰버와 발할라 프로젝트를 중심으로Oracle Korea
 
120908 레거시코드활용전략 4장5장
120908 레거시코드활용전략 4장5장120908 레거시코드활용전략 4장5장
120908 레거시코드활용전략 4장5장tedypicker
 
Domain Specific Languages With Groovy
Domain Specific Languages With GroovyDomain Specific Languages With Groovy
Domain Specific Languages With GroovyTommy C. Kang
 
Startup JavaScript 5 - 객체(Date, RegExp, Object, Global)
Startup JavaScript 5 - 객체(Date, RegExp, Object, Global)Startup JavaScript 5 - 객체(Date, RegExp, Object, Global)
Startup JavaScript 5 - 객체(Date, RegExp, Object, Global)Circulus
 
프론트엔드스터디 E04 js function
프론트엔드스터디 E04 js function프론트엔드스터디 E04 js function
프론트엔드스터디 E04 js functionYoung-Beom Rhee
 
Clean code
Clean codeClean code
Clean codebbongcsu
 
(국비지원/실업자교육/재직자교육/스프링교육/마이바티스교육추천)#13.스프링프레임워크 & 마이바티스 (Spring Framework, MyB...
(국비지원/실업자교육/재직자교육/스프링교육/마이바티스교육추천)#13.스프링프레임워크 & 마이바티스 (Spring Framework, MyB...(국비지원/실업자교육/재직자교육/스프링교육/마이바티스교육추천)#13.스프링프레임워크 & 마이바티스 (Spring Framework, MyB...
(국비지원/실업자교육/재직자교육/스프링교육/마이바티스교육추천)#13.스프링프레임워크 & 마이바티스 (Spring Framework, MyB...탑크리에듀(구로디지털단지역3번출구 2분거리)
 
Boost라이브러리의내부구조 20151111 서진택
Boost라이브러리의내부구조 20151111 서진택Boost라이브러리의내부구조 20151111 서진택
Boost라이브러리의내부구조 20151111 서진택JinTaek Seo
 
Javascript 완벽 가이드 정리
Javascript 완벽 가이드 정리Javascript 완벽 가이드 정리
Javascript 완벽 가이드 정리ETRIBE_STG
 

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

Es2015 Simple Overview
Es2015 Simple OverviewEs2015 Simple Overview
Es2015 Simple Overview
 
스파르탄스터디 E04 Javascript 객체지향, 함수형 프로그래밍
스파르탄스터디 E04 Javascript 객체지향, 함수형 프로그래밍스파르탄스터디 E04 Javascript 객체지향, 함수형 프로그래밍
스파르탄스터디 E04 Javascript 객체지향, 함수형 프로그래밍
 
Node.js intro
Node.js introNode.js intro
Node.js intro
 
Ai C#세미나
Ai C#세미나Ai C#세미나
Ai C#세미나
 
06장 함수
06장 함수06장 함수
06장 함수
 
Swift3 subscript inheritance initialization
Swift3 subscript inheritance initializationSwift3 subscript inheritance initialization
Swift3 subscript inheritance initialization
 
자바스크립트 기초문법~함수기초
자바스크립트 기초문법~함수기초자바스크립트 기초문법~함수기초
자바스크립트 기초문법~함수기초
 
Spring Boot 2
Spring Boot 2Spring Boot 2
Spring Boot 2
 
[Main Session] 미래의 Java 미리보기 - 앰버와 발할라 프로젝트를 중심으로
[Main Session] 미래의 Java 미리보기 - 앰버와 발할라 프로젝트를 중심으로[Main Session] 미래의 Java 미리보기 - 앰버와 발할라 프로젝트를 중심으로
[Main Session] 미래의 Java 미리보기 - 앰버와 발할라 프로젝트를 중심으로
 
Java.next
Java.nextJava.next
Java.next
 
120908 레거시코드활용전략 4장5장
120908 레거시코드활용전략 4장5장120908 레거시코드활용전략 4장5장
120908 레거시코드활용전략 4장5장
 
Domain Specific Languages With Groovy
Domain Specific Languages With GroovyDomain Specific Languages With Groovy
Domain Specific Languages With Groovy
 
Startup JavaScript 5 - 객체(Date, RegExp, Object, Global)
Startup JavaScript 5 - 객체(Date, RegExp, Object, Global)Startup JavaScript 5 - 객체(Date, RegExp, Object, Global)
Startup JavaScript 5 - 객체(Date, RegExp, Object, Global)
 
프론트엔드스터디 E04 js function
프론트엔드스터디 E04 js function프론트엔드스터디 E04 js function
프론트엔드스터디 E04 js function
 
Clean code
Clean codeClean code
Clean code
 
(국비지원/실업자교육/재직자교육/스프링교육/마이바티스교육추천)#13.스프링프레임워크 & 마이바티스 (Spring Framework, MyB...
(국비지원/실업자교육/재직자교육/스프링교육/마이바티스교육추천)#13.스프링프레임워크 & 마이바티스 (Spring Framework, MyB...(국비지원/실업자교육/재직자교육/스프링교육/마이바티스교육추천)#13.스프링프레임워크 & 마이바티스 (Spring Framework, MyB...
(국비지원/실업자교육/재직자교육/스프링교육/마이바티스교육추천)#13.스프링프레임워크 & 마이바티스 (Spring Framework, MyB...
 
javascript01
javascript01javascript01
javascript01
 
Boost라이브러리의내부구조 20151111 서진택
Boost라이브러리의내부구조 20151111 서진택Boost라이브러리의내부구조 20151111 서진택
Boost라이브러리의내부구조 20151111 서진택
 
Javascript기초
Javascript기초Javascript기초
Javascript기초
 
Javascript 완벽 가이드 정리
Javascript 완벽 가이드 정리Javascript 완벽 가이드 정리
Javascript 완벽 가이드 정리
 

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