SlideShare a Scribd company logo
Building Powerful Enterprise
Apps
with Angular and TypeScript
Microsoft Technical Evangelist
blog: DavidGiard.com
tv: TechnologyAndFriends.com
twitter: @DavidGiard
Email: dgiard@Microsoft.com
David Giard
Single Page Applications
@DavidGiard
Traditional Web App
HTML Page
Click me!
Server
Request
Response
Thank you, David!
@DavidGiard
Single Page App
HTML Page
Click me!
Server
Request
Response
Thank you, David!
{‘
name’: ‘David’
}
@DavidGiard
Angular
• SPA Framework
• Open Source
• Data Binding
• Components
• Modularize
@DavidGiard
TypeScript
• Open Source
• Superset of JavaScript
• Transpiles to JavaScript
@DavidGiard
TypeScript
foo.ts foo.js
Transpile
foo.map
@DavidGiard
Transpile
@DavidGiard
TypeScript Transpiling – Command Line
tsc
-p Compile a specific project or folder
-w Compile after each change detected
@DavidGiard
TypeScript Transpiling – Continuous Delivery
• Grunt, Gulp, Webpack, etc.
• Visual Studio
• VSTS
@DavidGiard
TypeScript Advantages
• Productivity
• Static Type Analysis
• Language Tool Support
• Better management of large codebases
@DavidGiard
Type Checking
var num1 = 5;
var num2 = 10;
…
num2=“10”;
…
var sum = num1 + num2;
@DavidGiard
Type Checking
var num1: number = 5;
var num2 : number = 10;
…
num2=“10”;
…
var sum: number = num1 + num2;
@DavidGiard
tsconfig.json{
"compilerOptions": {
"target": "es5",
"module": "system",
"moduleResolution": "node",
"sourceMap": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"removeComments": false,
"noImplicitAny": false
},
"exclude": [
"node_modules",
"typings/main",
"typings/main.d.ts"
]
}
@DavidGiard
Angular
@DavidGiard
Key Parts of Angular
• Modules
• Components
• Templates
• Directives
• Services
• Routing
@DavidGiard
Modules
@DavidGiard
Modules
• Built into Angular
• Makes it easier to split code into smaller pieces
• Import one module into another
• Export module to make it available for import
@DavidGiard
Modules
import {Component} from 'angular2/core';
@Component({
selector: 'my-selector',
template: '<h1>Hello World</h1>'
})
export class DemoComponent { }
Available
outside this
module
Use exported
module
In this module
@DavidGiard
Components
@DavidGiard
Components
• Class (properties & methods)
• Decorated with @Component
• Template
• Selector
• Imported references
@DavidGiard
Templates and Selectors
@DavidGiard
Templates and Selectors
import {Component} from 'angular2/core';
@Component({
selector: 'my-selector',
template: '<h1>Hello World</h1>'
})
export class DemoComponent { }
@DavidGiard
Selector
@Component({
selector: 'my-selector',
template: '<h1>Hello World</h1>'
})
export class DemoComponent { }
<my-selector>Loading...</my-selector>
@DavidGiard
<my-selector>Loading...</my-selector>
Templates
@Component({
selector: 'my-selector',
template: '<h1>Hello World</h1>'
})
export class DemoComponent { }
Output
Loading…
@DavidGiard
<my-selector>Loading...</my-selector>
Templates
@Component({
selector: 'my-selector',
template: '<h1>Hello World</h1>'
})
export class DemoComponent { }
Output
Hello World
@DavidGiard
<my-selector>Loading...</my-selector>
Templates: Multi-Line
Output
Hello World
Welcome
@Component({
selector: 'my-selector',
template: `
<h1>Hello World</h1>
<div>
Welcome!
</div>
`
})
export class DemoComponent { }
@DavidGiard
<my-selector>Loading...</my-selector>
Templates: External file
@Component({
selector: 'my-selector',
templateUrl: 'myPage.html'
})
export class DemoComponent { }
Output
<h1>Hello World</h1>
<div>
Welcome!
</div>
myPage.html
Hello World
Welcome
@DavidGiard
<my-selector>Loading...</my-selector>
Components: Properties
Output
<h1>Hello World</h1>
<div>
Welcome {{customerName}}!
</div>
myPage.html
Hello World
Welcome David
@Component({
selector: 'my-selector',
templateUrl: 'myPage.html'
})
export class DemoComponent {
customerName:string = “David”;
}
@DavidGiard
Data Binding
• 1-Way Binding
• Interpolation
• 1-Way Property Binding
• 2-Way Property Binding
• Event Binding
@DavidGiard
Interpolation
• Double curly braces around data
• e.g.,
{{customerName}}
@DavidGiard
Interpolation
@Component({
selector: 'my-selector',
template: '<h1>Hello World</h1>'
})
export class DemoComponent {
id=1;
customerFirstName='David';
customerLastName='Giard';
}
@DavidGiard
Interpolation
@Component({
selector: 'my-selector',
template: '<h1>Hello {{customerFirstName}}</h1>'
})
export class DemoComponent {
id=1;
customerFirstName='David';
customerLastName='Giard';
}
1-Way
Data Binding
Hello David
@DavidGiard
Interpolation
@Component({
selector: 'my-selector',
template: '<h1>Hello {{customer.FirstName}}</h1>'
})
export class DemoComponent {
id=1;
customer: Customer = {
FirstName='David';
LastName='Giard';
}
}
export class Customer{
FirstName: string;
LastName: string;
}
@DavidGiard
Interpolation
@Component({
selector: 'my-selector',
template: `
<h1>{{customer.FirstName}} Details</h1>
<div>First: {{customer.FirstName}}</div>
<div>Last: {{customer.LastName}}
`
})
export class DemoComponent {
id=1;
customer: Customer = {
FirstName='David';
LastName='Giard';
}
}
David Details
First: David
Last: Giard
@DavidGiard
1-Way Data Binding
• Square brackets around property
• []
@DavidGiard
1-Way Data Binding
@Component({
selector: 'my-selector',
template: ‘<button [disabled]="dataNotChanged">Save</button>’
})
export class DemoComponent {
dataNotChanged= true;
}
Save
@DavidGiard
1-Way Data Binding
@Component({
selector: 'my-selector',
template: ‘<button [disabled]=" dataNotChanged">Save</button>’
})
export class DemoComponent {
dataNotChanged = true;
}
Save
@DavidGiard
1-Way Data Binding
@Component({
selector: 'my-selector',
template: ‘<button [disabled]=" dataNotChanged">Save</button>’
})
export class DemoComponent {
dataNotChanged = false;
}
Save
@DavidGiard
2-Way Data Binding
• Requires FormsModule
• [(property_to_bind)]
@DavidGiard
2-Way Data Binding
@Component({
selector: 'my-selector',
template: `
<h1>{{customer.FirstName}} Details</h1>
<div>First: <input [(ngModel)]="customer.FirstName“ /> </div>
<div>Last: <input [(ngModel)]="customer.LastName“ /> </div>
`
})
export class DemoComponent {
id=1;
customer: Customer = {
FirstName='David';
LastName='Giard';
}
}
2-way data binding
David Details
David
Giard
First:
Last:
1-way data binding
@DavidGiard
2-Way Data Binding
@Component({
selector: 'my-selector',
template: `
<h1>{{customer.FirstName}} Details</h1>
<div>First: <input [(ngModel)]="customer.LastName“ /> </div>
<div>Last: <input [(ngModel)]="customer.FirstName“ /> </div>
`
})
export class DemoComponent {
id=1;
customer: Customer = {
FirstName='David';
LastName='Giard';
}
}
D Details
D
Giard
First:
Last:
@DavidGiard
2-Way Data Binding
@Component({
selector: 'my-selector',
template: `
<h1>{{customer.FirstName}} Details</h1>
<div>First: <input [(ngModel)]="customer.LastName“ /> </div>
<div>Last: <input [(ngModel)]="customer.FirstName" /> </div>
`
})
export class DemoComponent {
id=1;
customer: Customer = {
FirstName='David';
LastName='Giard';
}
}
Da Details
Da
Giard
First:
Last:
@DavidGiard
2-Way Data Binding
@Component({
selector: 'my-selector',
template: `
<h1>{{customer.FirstName}} Details</h1>
<div>First: <input [(ngModel)]="customer.LastName“ /> </div>
<div>Last: <input [(ngModel)]="customer.FirstName“ /> </div>
`
})
export class DemoComponent {
id=1;
customer: Customer = {
FirstName='David';
LastName='Giard';
}
}
Dan Details
Dan
Giard
First:
Last:
@DavidGiard
Events binding
<control (eventname)="methodname(parameters)">
click event
<control (click)="methodtocall(parameters)">
e.g.,
<div (click)="onClick(customer)">
@DavidGiard
click
@Component({
selector: 'my-selector',
template: `
<h1 (click)="onClick (customer)">{{customer.FirstName}} Details</h1>
<div>First: <input [(ngModel)]="customer.LastName" </div>
<div>Last: <input [(ngModel)]="customer.FirstName" </div>
`
})
export class DemoComponent {
id=1;
customer: Customer = {
FirstName='David';
LastName='Giard';
}
onClick(cust: Customer) { alert ("You Selected " + customer.FirstName); }
}
@DavidGiard
Bootstrapping your Angular app
@DavidGiard
@NgModule({
bootstrap: [AppComponent]
})
export class AppModule {
}
Bootstrapping
<script>
…
System.import(‘main.js')
</script>
import {AppComponent}
from './app.component';
platformBrowserDynamic().bootstrapModule(AppModule);
main.ts / main.js
= bootstrap file
@DavidGiard
Directives
@DavidGiard
Directives
• Allow you to attach behavior to DOM elements
@DavidGiard
Directives
• *ngFor
• *ngIf
• ngSwitch
• ngClass
• Custom Directives
@DavidGiard
*ngfor
<div *ngFor="#cust of customers">
{{cust.lastName}}, {{cust.firstName}}
</div>
var customers: Customer[] = [
{ "id": 1, "firstName": " Satya", "lastName" : " Nadella" },
{ "id": 2, "firstName": "Bill", "lastName": "Gates" },
{ "id": 3, "firstName": "Steve", "lastName": "Ballmer" },
{ "id": 4, "firstName": " David ", "lastName": " Giard " }
];
Nadella, Satya
Gates, Bill
Ballmer, Steve
Giard, David
@DavidGiard
*ngIf
• Syntax: *ngif="condition"
• Removes element from DOM if condition is not “truthy”
@DavidGiard
*ngIf
<h1>People I hate:</div>
<div *ngIf=“true”>
David Giard
</div>
People I hate:
David Giard
<h1>People I hate:</div>
<div *ngIf=“false”>
David Giard
</div>
People I hate:
@DavidGiard
*ngIf
<div>
<button (click)="clicked()">Toggle</button>
<div *ngIf="show">
Can you see me?
</div>
</div>
export class DemoComponent {
show: boolean = true;
clicked() {this.show = !this.show; }
}
Toggle
Can you see me?
@DavidGiard
*ngIf
<div>
<button (click)="clicked()">Toggle</button>
<div *ngIf="show">
Can you see me?
</div>
</div>
export class DemoComponent {
show: boolean = true;
clicked() {this.show = !this.show; }
}
Toggle
Can you see me?
@DavidGiard
LifeCycle Hooks
• OnInit
• OnChanges
• OnDestroy
@DavidGiard
OnInit
export class foo implements OnInit {
...
ngOnInit(){
...
}
}
@DavidGiard
Services
@DavidGiard
Services
• Class containing logic
• Shared Code: Used by components or other services
• Substitutable Objects
• Dependency Injection
@DavidGiard
Services
import { Injectable } from '@angular/core';
@Injectable()
export class CustService {
getCustomers() {
return customers;
}
}
var customers: Customer[] = [
{ "id": 1, "firstname": "David", "lastname": "Giard" },
{ "id": 2, "firstname": "Bill", "lastname": "Gates" },
{ "id": 3, "firstname": "Steve", "lastname": "Ballmer" },
{ "id": 4, "firstname": "Satya", "lastname": "Nadella" }
];
CustomerService.ts
@DavidGiard
Services
import { Injectable } from '@angular/core';
@Injectable()
export class CustService {
getCustomers() {
return customers;
}
}
…
CustomerService.ts
import { OnInit } from '@angular/core';
import {CustService} from CustomerService
@Component({
selector: 'xxx',
template: 'yyy',
…
providers: [CustService]
})
export class DemoComponent implements OnInit {
constructor(private customerService:CustService) { }
ngOnInit() {
this.customers = this.customerService.getCustomers();
}
}
@DavidGiard
Routing
@DavidGiard
Routing
• Load components dynamically into page
• Link via URL
• Client-side
• Step 1: Bootstrap array of routes
@DavidGiard
Routing
http://url.com/
HOME
---
---
---
---
@DavidGiard
Routing
http://url.com/about
---
---
---
---
ABOUT
@DavidGiard
Routing
http://url.com/products
---
---
---
---
PRODUCTS
@DavidGiard
Routing
const routes: Routes = [
{
path: foo',
component: FooComponent
},
{
path: ‘bar',
component: BarComponent
},
];
<a [routerLink]="[/foo']">Foo</a>
<a [routerLink]="[/bar']">Bar</a>
<router-outlet></router-outlet>
app.routes.ts
User clicks “Foo” link
@DavidGiard
HTTP
import {Http } from '@angular/http';
...
this.http.get(webServiceUrl);
bootstrap(DemoComponent, [
HTTP_PROVIDERS,
]);
main.ts
Component
@DavidGiard
Observables (via RxJs)
Observable<T>
Function
Subscribe
Data
@DavidGiard
Observables
getCustomers(): Observable<customer[]> {
return Observable.create((observer: Observer<any>) => {
…
observer.next(this.customers);
})
}
this.episodeService. getCustomers().subscribe((data) => {
…
}
@DavidGiard
DEMO
@DavidGiard
Links
• angular.io
• typescriptlang.org
• github.com/Microsoft/TypeScript
• nodejs.org/en/download
• code.visualstudio.com
• tinyurl.com/angular2cheatsheet
• slideshare.net/dgiard/angular2-and-typescript
• github.com/DavidGiard/dgtv
• davidgiard.com

More Related Content

What's hot (20)

PDF
Overview of the AngularJS framework
Yakov Fain
 
PPTX
Angular js
Behind D Walls
 
PDF
Angular 2 - The Next Framework
Commit University
 
PDF
Exploring Angular 2 - Episode 2
Ahmed Moawad
 
PDF
RESTful services and OAUTH protocol in IoT
Yakov Fain
 
PPTX
Angular js 2
Ran Wahle
 
PDF
Universal JavaScript Web Applications with React - Luciano Mammino - Codemoti...
Codemotion
 
PPTX
Angular 5
Bartłomiej Narożnik
 
PPTX
AngularJs Workshop SDP December 28th 2014
Ran Wahle
 
PDF
Seven Versions of One Web Application
Yakov Fain
 
PPTX
Angular Js Basics
أحمد عبد الوهاب
 
PPTX
Understanding angular js
Aayush Shrestha
 
PPTX
Angular JS
John Temoty Roca
 
PPTX
Angular js 1.0-fundamentals
Venkatesh Narayanan
 
PDF
Integrating consumers IoT devices into Business Workflow
Yakov Fain
 
PDF
Angular 2: core concepts
Codemotion
 
PDF
Exploring Angular 2 - Episode 1
Ahmed Moawad
 
PDF
Commit University - Exploring Angular 2
Commit University
 
PDF
Angular server side rendering - Strategies & Technics
Eliran Eliassy
 
PDF
Using ReactJS in AngularJS
Boris Dinkevich
 
Overview of the AngularJS framework
Yakov Fain
 
Angular js
Behind D Walls
 
Angular 2 - The Next Framework
Commit University
 
Exploring Angular 2 - Episode 2
Ahmed Moawad
 
RESTful services and OAUTH protocol in IoT
Yakov Fain
 
Angular js 2
Ran Wahle
 
Universal JavaScript Web Applications with React - Luciano Mammino - Codemoti...
Codemotion
 
AngularJs Workshop SDP December 28th 2014
Ran Wahle
 
Seven Versions of One Web Application
Yakov Fain
 
Angular Js Basics
أحمد عبد الوهاب
 
Understanding angular js
Aayush Shrestha
 
Angular JS
John Temoty Roca
 
Angular js 1.0-fundamentals
Venkatesh Narayanan
 
Integrating consumers IoT devices into Business Workflow
Yakov Fain
 
Angular 2: core concepts
Codemotion
 
Exploring Angular 2 - Episode 1
Ahmed Moawad
 
Commit University - Exploring Angular 2
Commit University
 
Angular server side rendering - Strategies & Technics
Eliran Eliassy
 
Using ReactJS in AngularJS
Boris Dinkevich
 

Viewers also liked (20)

PPTX
TypeScript Overview
Aniruddha Chakrabarti
 
PPTX
Cloud and azure and rock and roll
David Giard
 
PDF
TypeScript: coding JavaScript without the pain
Sander Mak (@Sander_Mak)
 
PDF
Getting Started with Angular 2
FITC
 
PDF
JavaScript Design Patterns
Derek Brown
 
PPTX
Workshop Intro: FrontEnd General Overview
Visual Engineering
 
PPTX
Introducing type script
Remo Jansen
 
PPTX
Javascript Common Design Patterns
Pham Huy Tung
 
PPT
single page application
Ravindra K
 
PPTX
Angular 2 with TypeScript
Cipriano Freitas
 
PPTX
Rits Brown Bag - TypeScript
Right IT Services
 
PDF
The Tale of 2 CLIs - Ember-cli and Angular-cli
Tracy Lee
 
PDF
Single-Page Web Application Architecture
Eray Arslan
 
PPTX
Angular 2 + TypeScript = true. Let's Play!
Sirar Salih
 
PPTX
Typescript ppt
akhilsreyas
 
PDF
Using Angular-CLI to Deploy an Angular 2 App Using Firebase in 30 Minutes
Tracy Lee
 
PPTX
Angular 2 with TypeScript
Shravan Kumar Kasagoni
 
PDF
Creating an Angular 2 Angular CLI app in 15 Minutes Using MaterializeCSS & Fi...
Tracy Lee
 
PDF
Single page application
Jeremy Lee
 
PPTX
Single page application
Ismaeel Enjreny
 
TypeScript Overview
Aniruddha Chakrabarti
 
Cloud and azure and rock and roll
David Giard
 
TypeScript: coding JavaScript without the pain
Sander Mak (@Sander_Mak)
 
Getting Started with Angular 2
FITC
 
JavaScript Design Patterns
Derek Brown
 
Workshop Intro: FrontEnd General Overview
Visual Engineering
 
Introducing type script
Remo Jansen
 
Javascript Common Design Patterns
Pham Huy Tung
 
single page application
Ravindra K
 
Angular 2 with TypeScript
Cipriano Freitas
 
Rits Brown Bag - TypeScript
Right IT Services
 
The Tale of 2 CLIs - Ember-cli and Angular-cli
Tracy Lee
 
Single-Page Web Application Architecture
Eray Arslan
 
Angular 2 + TypeScript = true. Let's Play!
Sirar Salih
 
Typescript ppt
akhilsreyas
 
Using Angular-CLI to Deploy an Angular 2 App Using Firebase in 30 Minutes
Tracy Lee
 
Angular 2 with TypeScript
Shravan Kumar Kasagoni
 
Creating an Angular 2 Angular CLI app in 15 Minutes Using MaterializeCSS & Fi...
Tracy Lee
 
Single page application
Jeremy Lee
 
Single page application
Ismaeel Enjreny
 
Ad

Similar to Angular2 and TypeScript (20)

PDF
Building Powerful Applications with AngularJS 2 and TypeScript - David Giard
ITCamp
 
PPTX
A (very) opinionated guide to MSBuild and Project Files
David Wengier
 
PDF
當ZK遇見Front-End
祁源 朱
 
PDF
Polymer - El fin a tus problemas con el FrontEnd
Israel Blancas
 
PDF
Server side rendering with React and Symfony
Ignacio Martín
 
PDF
Stencil: The Time for Vanilla Web Components has Arrived
Gil Fink
 
PDF
How to Mess Up Your Angular UI Components
cagataycivici
 
PPTX
IndexedDB and Push Notifications in Progressive Web Apps
Adégòkè Obasá
 
PDF
De 0 a Polymer
Israel Blancas
 
PDF
Mastering JavaScript and DOM: A Gateway to Web Development
Piyumi Niwanthika Herath
 
PDF
Angular - Chapter 4 - Data and Event Handling
WebStackAcademy
 
PDF
DirectToWeb 2.0
WO Community
 
PDF
Polymer Code Lab in Dart - DevFest Kraków 2014
jskvara
 
PDF
Dart Workshop
Dmitry Buzdin
 
PDF
Stencil the time for vanilla web components has arrived
Gil Fink
 
PDF
Google App Engine in 40 minutes (the absolute essentials)
Python Ireland
 
PDF
Angular JS2 Training Session #2
Paras Mendiratta
 
PDF
Introduction to angular js
Marco Vito Moscaritolo
 
PDF
GDayX - Advanced Angular.JS
Nicolas Embleton
 
PDF
Dart for Java Developers
Yakov Fain
 
Building Powerful Applications with AngularJS 2 and TypeScript - David Giard
ITCamp
 
A (very) opinionated guide to MSBuild and Project Files
David Wengier
 
當ZK遇見Front-End
祁源 朱
 
Polymer - El fin a tus problemas con el FrontEnd
Israel Blancas
 
Server side rendering with React and Symfony
Ignacio Martín
 
Stencil: The Time for Vanilla Web Components has Arrived
Gil Fink
 
How to Mess Up Your Angular UI Components
cagataycivici
 
IndexedDB and Push Notifications in Progressive Web Apps
Adégòkè Obasá
 
De 0 a Polymer
Israel Blancas
 
Mastering JavaScript and DOM: A Gateway to Web Development
Piyumi Niwanthika Herath
 
Angular - Chapter 4 - Data and Event Handling
WebStackAcademy
 
DirectToWeb 2.0
WO Community
 
Polymer Code Lab in Dart - DevFest Kraków 2014
jskvara
 
Dart Workshop
Dmitry Buzdin
 
Stencil the time for vanilla web components has arrived
Gil Fink
 
Google App Engine in 40 minutes (the absolute essentials)
Python Ireland
 
Angular JS2 Training Session #2
Paras Mendiratta
 
Introduction to angular js
Marco Vito Moscaritolo
 
GDayX - Advanced Angular.JS
Nicolas Embleton
 
Dart for Java Developers
Yakov Fain
 
Ad

More from David Giard (20)

PPTX
Data Visualization - CodeMash 2022
David Giard
 
PPTX
Azure data factory
David Giard
 
PPTX
Azure functions
David Giard
 
PPTX
University of Texas lecture: Data Science Tools in Microsoft Azure
David Giard
 
PPTX
University of Texas, Data Science, March 29, 2018
David Giard
 
PPTX
Intro to cloud and azure
David Giard
 
PPTX
Azure and deep learning
David Giard
 
PPTX
Azure and Deep Learning
David Giard
 
PPTX
Custom vision
David Giard
 
PPTX
Cloud and azure and rock and roll
David Giard
 
PPTX
Own your own career advice from a veteran consultant
David Giard
 
PPTX
You and Your Tech Community
David Giard
 
PPTX
Microsoft Azure IoT overview
David Giard
 
PPTX
Big Data on azure
David Giard
 
PPTX
Microsoft azure without microsoft
David Giard
 
PPTX
Effective Data Visualization
David Giard
 
PPTX
Containers
David Giard
 
PPTX
Cloud and azure and rock and roll
David Giard
 
PPTX
How I Learned to Stop Worrying and Love jQuery (Jan 2013)
David Giard
 
PPTX
Data visualization 2012-09
David Giard
 
Data Visualization - CodeMash 2022
David Giard
 
Azure data factory
David Giard
 
Azure functions
David Giard
 
University of Texas lecture: Data Science Tools in Microsoft Azure
David Giard
 
University of Texas, Data Science, March 29, 2018
David Giard
 
Intro to cloud and azure
David Giard
 
Azure and deep learning
David Giard
 
Azure and Deep Learning
David Giard
 
Custom vision
David Giard
 
Cloud and azure and rock and roll
David Giard
 
Own your own career advice from a veteran consultant
David Giard
 
You and Your Tech Community
David Giard
 
Microsoft Azure IoT overview
David Giard
 
Big Data on azure
David Giard
 
Microsoft azure without microsoft
David Giard
 
Effective Data Visualization
David Giard
 
Containers
David Giard
 
Cloud and azure and rock and roll
David Giard
 
How I Learned to Stop Worrying and Love jQuery (Jan 2013)
David Giard
 
Data visualization 2012-09
David Giard
 

Recently uploaded (20)

PDF
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
PDF
Go Concurrency Real-World Patterns, Pitfalls, and Playground Battles.pdf
Emily Achieng
 
PDF
Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
PPTX
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
PDF
LOOPS in C Programming Language - Technology
RishabhDwivedi43
 
PDF
Peak of Data & AI Encore AI-Enhanced Workflows for the Real World
Safe Software
 
PDF
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
PDF
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
PDF
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
PPTX
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
PPTX
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
PDF
Automating Feature Enrichment and Station Creation in Natural Gas Utility Net...
Safe Software
 
PDF
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
Fwdays
 
PDF
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
PDF
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
PDF
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
PDF
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
PDF
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
PDF
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PDF
Transcript: Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
Go Concurrency Real-World Patterns, Pitfalls, and Playground Battles.pdf
Emily Achieng
 
Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
LOOPS in C Programming Language - Technology
RishabhDwivedi43
 
Peak of Data & AI Encore AI-Enhanced Workflows for the Real World
Safe Software
 
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
Automating Feature Enrichment and Station Creation in Natural Gas Utility Net...
Safe Software
 
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
Fwdays
 
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
Transcript: Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 

Angular2 and TypeScript

Editor's Notes

  • #17: provides additional definition files for libraries that the TypeScript compiler doesn't natively recognize.
  • #24: COMPONENT = Template (view, including HTML, bindings, directives) + Class (properties / methods; created with TypeScript) + Metadata (decorator: from Angular)
  • #55: structural directives (*ngIf, *ngFor) Replaces HTML