3. Awair
어웨어는 공기에서 가장 중요한 5가지 요소인 온도, 습도, 이산화탄소,
VOC(휘발성유기화합물 ), 미세먼지를 측정합니다. 그리고 측정치를 바탕으로 전체 공기
상태를 분석해냅니다. 분석된 공기 상태는 0-100점 사이의 점수인 어웨어 스코어로
계산되며, 각 점수대는 특정한 색상으로 표현됩니다. 0점은 최악의 공기 상태를 의미하며,
100점은 최상의 공기 상태를 의미합니다.
16. Typescript
• 마이크로 소프트의 Open Source 프로젝트
• 자바스크립트의 부족한 부분은 고치기 위한 시도
• 자바스크립트의 슈퍼셋 => 자바스크립트 + 정적 타입
(그리고 클래스, 인터페이스, 모듈 등…).
• 타입 어노테이션과 함께 ES6 문법을 사용하여 일반
자바스크립트로 컴파일 (컴파일 대상 : ES3, ES5, ES6).
• 어떠한 자바스크립트 에플리케이션은 타입스크립트
어플리케이션임
17. 타입스크립트 정의 파일
• .d.ts 확장자.
• 타입의 정의를 가능케함
• 외부 자바스크립트 라이브러리들의 타입 정의를 제공
Typescript
tsc app.tsapp.ts app.js
TSC - 타입스크립트 컴파일러 npm install -g typescript
typings - 타입스크립트 정의 파일들의 패키지 매니져 npm install typings --global
DefinitelyTyped (http://definitelytyped.org/): 타입스크립트 정의 파일들의 레파지토리 (github을 통해 호스팅)
18. Typescript
class Greeter {
greeting: string;
constructor(message: string) {
this.greeting = message;
}
greet() {
return "Hello, " + this.greeting;
}
}
var greeter = new Greeter("world");
var button = document.createElement('button');
button.textContent = "Say Hello";
button.onclick = function() {
alert(greeter.greet());
}
document.body.appendChild(button);
Type Annotation
19. Typescript
import { Component } from '@angular/core';
@Component({
selector: 'my-app',
template: '<h1>My First Angular 2 App</h1>'
})
export class AppComponent { }
Meta Annotation
30. My First Component
import {Component} from '@angular/core';
@Component({
selector: 'my-app',
template: '<h1>My First Angular 2 App</h1>'
})
class AppComponent {
}
View
Logic
54. What is Observables?
- Like promise - async
- Like arrays - many values
- Lazy
- Reusable
- Disposable
- Composable
55. Observables
let o = new Observable((sink:Subscriber) => {
//do stuff here
});
let sub = o.subscribe(
(val) => console.log(val),
(err) => console.error(err),
() => console.log(‘done’)
)
56. let o = new Observable((sink:Subscriber) => {
sink.next(1);
sink.next(2);
sink.next(3);
});
let sub = o.subscribe((val) => console.log(val));
//1
//2
//3
Observables - propagating values
57. let o = new Observable((sink:Subscriber) => {
sink.next(1);
sink.next(2);
sink.next(3);
sink.complete();
});
Observables - completion
58. let o = new Observable((sink:Subscriber) => {
sink.next(1);
sink.next(2);
sink.next(3);
sink.error(‘OHNOES’);
});
Observables - errors
59. let o = new Observable((sink:Subscriber) => {
let id = setInterval(() => {
sink.next(‘tick’);
}, 1000);
return () =>
//cleanup
clearInterval(id);
});
Observables - disposal
60. let o = Observable.interval(1000);
let sub = o.subscribe(v => console.log(v));
//later
sub.unsubscribe();
Observables - disposal