SlideShare ist ein Scribd-Unternehmen logo
1
AngularJS mit ES6 und TypeScript
Manfred Steyer
ManfredSteyer
Inhalt
Recap: AngularJS und ES5
Überblick: AngularJS und ES6
Überblick: AngularJS und TypeScript
DEMO: Angular mit TypeScript
DEMO: Angular mit ES6 (Babel, Gulp)
Page  2
2
RECAP:
ANGULARJS UND ES5
Page  3
Konstruktor-Funktion
Page  4
function FlugSuchenVM($http, $log) {
var that = this;
that.vonFilter = "Graz";
that.nachFilter = "Hamburg";
that.selectedFlug = null;
that.fluege = [];
that.message = "";
that.suchen = function() { … }
that.select = function() { … }
}
var vm = new FlugSuchenVM($http, $log);
3
Namensraum
Page  5
function FlugSuchenVM($http, $log) {
[…]
}
„Verschmutzt“ den globalen Namensraum.
Immediately-Invoked Function
Expression (IIFE)
Page  6
(function () {
function FlugSuchenVM($http, $log) {
[…]
}
angular
.module('flug')
.controller('FlugSuchenVM', FlugSuchenVM);
})();
4
Alternative für AngularJS
Page  7
angular
.module('flug')
.controller('FlugSuchenVM', function ($http, $log) {
[…]
});
ÜBERBLICK:
ANGULARJS UND ES 6
Page  8
5
Klassen
Page  9
export class FlugSuchenVM {
constructor($http, $log) {
this.$http = $http;
this.$http = $http;
this.vonFilter = "Graz";
this.nachFilter = "Hamburg";
}
suchen() { […] }
select() { […] }
}
var vm = new FlugSuchenVM($http, $log);
Exportierte Elemente importieren
Page  10
// app.js
import { FlugSuchenVM } from 'flug-suchen-vm';
import * as angular from 'angular';
var app = angular.module('flug', []);
app.controller('FlugSuchenVM', FlugSuchenVM);
Relative Pfadangaben oder über Mapping definiert
6
Lambda-Ausdrücke (Arrow Functions)
Page  11
search() {
var options = { params: […] };
var url = "[…]";
return this
.$http
.get(url, options)
.then((result) => {
this.events = result.data;
})
.catch((result) => {
this.message = "Fehler!";
});
}
Lambda-Ausdrücke (Arrow Functions)
Page  12
search() {
var options = { params: […] };
var url = "[…]";
return this
.$http
.get(url, options)
.then((result) => {
this.events = result.data;
})
.catch((result) => {
this.message = "Fehler!";
});
}
7
EcmaScript 6 heute schon nutzen
Cross-Kompilieren zu ES5 („Transpilation“)
Populärer Transpiler: Babel
Package-Manager: jspm
Page  13
Module laden via System.js
Page  14
<!– Moduleloader System.js -->
<script src="jspm_packages/system.js"></script>
<!– Konfiguration mit Mappings für System.js -->
<script src="config.js"></script>
<script>
// „Erste“ Java-Script-Datei (hier app.js) laden
System.import('app')
.catch(function(err) { console.error(err); });
</script>
8
ÜBERBLICK ZU
TYPESCRIPT
Page  15
ES6
Page  16
export class FlugSuchenVM {
$http;
$log;
$vonFilter;
$nachFilter;
constructor($http, $log) {
this.$http = $http;
this.$http = $http;
this.vonFilter = "Graz";
this.nachFilter = "Hamburg";
}
suchen() { […] }
select() { […] }
}
var vm = new FlugSuchenVM($http, $log);
9
TypeScript
Page  17
export class FlugSuchenVM {
$http: ng.IHttpService;
$log: ng.ILogService;
$vonFilter: string;
$nachFilter: string;
constructor($http: ng.IHttpService,
$log : ng.ILogService) {
this.$http = $http;
this.$http = $http;
this.vonFilter = "Graz";
this.nachFilter = "Hamburg";
}
suchen() { […] }
select() { […] }
}
Typ-Deklarationen für die
meisten Frameworks erhältlich!
Datentypen
Page  18
number string boolean
Function Object any
Eigene
Kassen
Eigene
Interfaces
10
TypeScript heute nutzen
TypeScript-Compiler kompiliert TypeScript
wahlweise nach ES6, ES5 oder ES3
Page  19
Werkzeuge
tsc: TypeScript-Compiler
tsd: Packet-Manager für Typ-Deklarationen
jspm: Packet-Manager mit Unterstützung für
ES6-Module
Page  20
11
DEMO:
NG & TYPESCRIPT
Page  21
DEMO:
NG & ES6 (BABEL, GULP)
Page  22

Weitere ähnliche Inhalte

ODP
PDF
.NET Summit 2016 München: EcmaScript 2015+ with TypeScript
PDF
.NET Summit 2016 München: Angular 2 mit TypeScript
PDF
Migrationspfade für Angular 2
PDF
Single Page Applications neu gedacht: Redux in Angular 2 mit @ngrx/store
PPTX
Pimcore
PDF
Automatisierte infrastruktur mit ansible
PPT
PHP: exit
.NET Summit 2016 München: EcmaScript 2015+ with TypeScript
.NET Summit 2016 München: Angular 2 mit TypeScript
Migrationspfade für Angular 2
Single Page Applications neu gedacht: Redux in Angular 2 mit @ngrx/store
Pimcore
Automatisierte infrastruktur mit ansible
PHP: exit

Was ist angesagt? (14)

PDF
Datenbindung und Performance in Angular 2
PDF
Cloud Provisioning mit Juju
ODP
jQuery & CouchDB - Die zukünftige Webentwicklung?
PDF
JsUnconf 2014
PDF
Seminar Joomla 1.5 SEF-Mechanismus
PDF
Go - Googles Sprache für skalierbare Systeme
PDF
Automation with Ansible
PDF
OSMC 2018 | Katzeninhalt mit ein wenig Einhornmagie by Carsten Koebke
PDF
Spaß an der Nebenläufigkeit
PDF
Skalierbare Anwendungen mit Google Go
PDF
APEX & MTdoxx
PDF
JavaScript Performance
PDF
Angular 2: Die Ideen hinter Datenbindung und Formularen im Detail betrachtet
PDF
Hooks
Datenbindung und Performance in Angular 2
Cloud Provisioning mit Juju
jQuery & CouchDB - Die zukünftige Webentwicklung?
JsUnconf 2014
Seminar Joomla 1.5 SEF-Mechanismus
Go - Googles Sprache für skalierbare Systeme
Automation with Ansible
OSMC 2018 | Katzeninhalt mit ein wenig Einhornmagie by Carsten Koebke
Spaß an der Nebenläufigkeit
Skalierbare Anwendungen mit Google Go
APEX & MTdoxx
JavaScript Performance
Angular 2: Die Ideen hinter Datenbindung und Formularen im Detail betrachtet
Hooks
Anzeige

Andere mochten auch (11)

PDF
Bosch ignição "CATÁLOGO IGNIÇÃO SISTEMAS CONVENCIONAIS"
PPTX
Final my ideas 1.pptx.
PPTX
Facebook
PDF
London TEC Construction Sector Study
PDF
La promanade | Ambivali east | 9867278896
RTF
Sean C.V 2
PDF
OOP 2016: Moderne Security Szenarien mit OAuth 2 und OIDC
PPTX
Fitness ppt
PPT
Mahatma gandhi
ODP
Herramientas de calc
Bosch ignição "CATÁLOGO IGNIÇÃO SISTEMAS CONVENCIONAIS"
Final my ideas 1.pptx.
Facebook
London TEC Construction Sector Study
La promanade | Ambivali east | 9867278896
Sean C.V 2
OOP 2016: Moderne Security Szenarien mit OAuth 2 und OIDC
Fitness ppt
Mahatma gandhi
Herramientas de calc
Anzeige

Ähnlich wie Modern angular 02_angular_mit_type_script (20)

PDF
Testing tools
PPTX
Microservices mit Rust
PDF
Webapplikationen mit Node.js
PDF
Javascript auf Client und Server mit node.js - webtech 2010
PPTX
Backend-Services mit Rust
PDF
.NET Summit 2016 in München: ASP.NET Core 1
ODP
Grails 0.3-SNAPSHOT Presentation WJAX 2006
PDF
EnterJS 2015 - JavaScript von Morgen schon heute
PDF
W-JAX 2024: Serverless mit Go in der Cloud
PDF
Open icf (open identity connector framework) @ forgerock deutsch
PDF
JAX 2024: Go in der Praxis einsetzen
ODP
Praesentation TYPO3Camp Berlin Speed mit Extbase
PPTX
Prototype 1.7
PDF
Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...
PDF
W-JAX 2024: Go in der Praxis, für CLI und Web
PPTX
Angular von 0 auf 100
PDF
Web APIs mit ASP.NET Core 1
PPTX
JavaServer Faces 2.2 (Herbstcampus 2013)
PPTX
ApEx effektiv - DOAG 2010 - OPITZ CONSULTING - Stephan Engel
PDF
Testing tools
Microservices mit Rust
Webapplikationen mit Node.js
Javascript auf Client und Server mit node.js - webtech 2010
Backend-Services mit Rust
.NET Summit 2016 in München: ASP.NET Core 1
Grails 0.3-SNAPSHOT Presentation WJAX 2006
EnterJS 2015 - JavaScript von Morgen schon heute
W-JAX 2024: Serverless mit Go in der Cloud
Open icf (open identity connector framework) @ forgerock deutsch
JAX 2024: Go in der Praxis einsetzen
Praesentation TYPO3Camp Berlin Speed mit Extbase
Prototype 1.7
Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...
W-JAX 2024: Go in der Praxis, für CLI und Web
Angular von 0 auf 100
Web APIs mit ASP.NET Core 1
JavaServer Faces 2.2 (Herbstcampus 2013)
ApEx effektiv - DOAG 2010 - OPITZ CONSULTING - Stephan Engel

Mehr von Manfred Steyer (20)

PDF
Der neue Component Router für Angular 2
PDF
Offlinefähige Browseranwendungen: Progressive Web-Apps mit Angular 2
PDF
Datengetriebene Web APIs mit Entity Framework
PDF
Angular 2 Upgrade: Migration von AngularJS 1.x zu 2.0
PDF
The newst new Router for Angular 2 ("Version 3")
PDF
Databinding and Performance-Tuning in Angular 2
PDF
Modern authentication solutions in Angular 2 with OAuth 2.0 and OpenId Connect
PDF
Progressive web apps with Angular 2
PDF
Der neueste neue Router (Version 3) für Angular 2
PDF
PDF
ASP.NET Core 1 for MVC- and WebAPI-Devs
PDF
EF Core 1: News features and changes
PDF
Angular 2: Migration - SSD 2016 London
PDF
Angular 2 - SSD 2016 London
PDF
ASP.NET Web API Deep Dive - SSD 2016 London
PDF
Was bringt Angular 2?
PDF
Web APIs mit ASP.NET MVC Core 1
PDF
Wiederverwendbare Komponenten mit Angular 2.0 – Deep Dive
PDF
Angular 2: Routing
PDF
Moderne Web-Anwendungen mit Angular 2
Der neue Component Router für Angular 2
Offlinefähige Browseranwendungen: Progressive Web-Apps mit Angular 2
Datengetriebene Web APIs mit Entity Framework
Angular 2 Upgrade: Migration von AngularJS 1.x zu 2.0
The newst new Router for Angular 2 ("Version 3")
Databinding and Performance-Tuning in Angular 2
Modern authentication solutions in Angular 2 with OAuth 2.0 and OpenId Connect
Progressive web apps with Angular 2
Der neueste neue Router (Version 3) für Angular 2
ASP.NET Core 1 for MVC- and WebAPI-Devs
EF Core 1: News features and changes
Angular 2: Migration - SSD 2016 London
Angular 2 - SSD 2016 London
ASP.NET Web API Deep Dive - SSD 2016 London
Was bringt Angular 2?
Web APIs mit ASP.NET MVC Core 1
Wiederverwendbare Komponenten mit Angular 2.0 – Deep Dive
Angular 2: Routing
Moderne Web-Anwendungen mit Angular 2

Modern angular 02_angular_mit_type_script

  • 1. 1 AngularJS mit ES6 und TypeScript Manfred Steyer ManfredSteyer Inhalt Recap: AngularJS und ES5 Überblick: AngularJS und ES6 Überblick: AngularJS und TypeScript DEMO: Angular mit TypeScript DEMO: Angular mit ES6 (Babel, Gulp) Page  2
  • 2. 2 RECAP: ANGULARJS UND ES5 Page  3 Konstruktor-Funktion Page  4 function FlugSuchenVM($http, $log) { var that = this; that.vonFilter = "Graz"; that.nachFilter = "Hamburg"; that.selectedFlug = null; that.fluege = []; that.message = ""; that.suchen = function() { … } that.select = function() { … } } var vm = new FlugSuchenVM($http, $log);
  • 3. 3 Namensraum Page  5 function FlugSuchenVM($http, $log) { […] } „Verschmutzt“ den globalen Namensraum. Immediately-Invoked Function Expression (IIFE) Page  6 (function () { function FlugSuchenVM($http, $log) { […] } angular .module('flug') .controller('FlugSuchenVM', FlugSuchenVM); })();
  • 4. 4 Alternative für AngularJS Page  7 angular .module('flug') .controller('FlugSuchenVM', function ($http, $log) { […] }); ÜBERBLICK: ANGULARJS UND ES 6 Page  8
  • 5. 5 Klassen Page  9 export class FlugSuchenVM { constructor($http, $log) { this.$http = $http; this.$http = $http; this.vonFilter = "Graz"; this.nachFilter = "Hamburg"; } suchen() { […] } select() { […] } } var vm = new FlugSuchenVM($http, $log); Exportierte Elemente importieren Page  10 // app.js import { FlugSuchenVM } from 'flug-suchen-vm'; import * as angular from 'angular'; var app = angular.module('flug', []); app.controller('FlugSuchenVM', FlugSuchenVM); Relative Pfadangaben oder über Mapping definiert
  • 6. 6 Lambda-Ausdrücke (Arrow Functions) Page  11 search() { var options = { params: […] }; var url = "[…]"; return this .$http .get(url, options) .then((result) => { this.events = result.data; }) .catch((result) => { this.message = "Fehler!"; }); } Lambda-Ausdrücke (Arrow Functions) Page  12 search() { var options = { params: […] }; var url = "[…]"; return this .$http .get(url, options) .then((result) => { this.events = result.data; }) .catch((result) => { this.message = "Fehler!"; }); }
  • 7. 7 EcmaScript 6 heute schon nutzen Cross-Kompilieren zu ES5 („Transpilation“) Populärer Transpiler: Babel Package-Manager: jspm Page  13 Module laden via System.js Page  14 <!– Moduleloader System.js --> <script src="jspm_packages/system.js"></script> <!– Konfiguration mit Mappings für System.js --> <script src="config.js"></script> <script> // „Erste“ Java-Script-Datei (hier app.js) laden System.import('app') .catch(function(err) { console.error(err); }); </script>
  • 8. 8 ÜBERBLICK ZU TYPESCRIPT Page  15 ES6 Page  16 export class FlugSuchenVM { $http; $log; $vonFilter; $nachFilter; constructor($http, $log) { this.$http = $http; this.$http = $http; this.vonFilter = "Graz"; this.nachFilter = "Hamburg"; } suchen() { […] } select() { […] } } var vm = new FlugSuchenVM($http, $log);
  • 9. 9 TypeScript Page  17 export class FlugSuchenVM { $http: ng.IHttpService; $log: ng.ILogService; $vonFilter: string; $nachFilter: string; constructor($http: ng.IHttpService, $log : ng.ILogService) { this.$http = $http; this.$http = $http; this.vonFilter = "Graz"; this.nachFilter = "Hamburg"; } suchen() { […] } select() { […] } } Typ-Deklarationen für die meisten Frameworks erhältlich! Datentypen Page  18 number string boolean Function Object any Eigene Kassen Eigene Interfaces
  • 10. 10 TypeScript heute nutzen TypeScript-Compiler kompiliert TypeScript wahlweise nach ES6, ES5 oder ES3 Page  19 Werkzeuge tsc: TypeScript-Compiler tsd: Packet-Manager für Typ-Deklarationen jspm: Packet-Manager mit Unterstützung für ES6-Module Page  20
  • 11. 11 DEMO: NG & TYPESCRIPT Page  21 DEMO: NG & ES6 (BABEL, GULP) Page  22