SlideShare a Scribd company logo
1 of 51
Download to read offline
1
Slides:
TypeScript
Das bessere JavaScript!?
/Christian Kaltepoth @chkal
http://bit.ly/wjax16-typescript
2
Christian Kaltepoth
Senior Developer @ ingenit
/christian@kaltepoth.de @chkal
http://blog.kaltepoth.de
3
Why another
JavaScript dialect?
4
Source:  http://www.typescriptlang.org/
5
Dynamic typing is weird
"3" + 1     // implicit cast to string 
// > "31" 
             
"3" ­ 1     // implicit cast to number 
// > 2
{} + {}     // > "[object Object][object Object]" 
{} + []     // > 0 
[] + []     // > ""
6
TypeScript
ECMAScript 2016
Type system
Compiles to JavaScript
7
JavaScript
var n = 3;
TypeScript
let n: number = 3;
8
Types are great
let n: number = 1; 
// > 1 
             
n = 2; 
// > 2 
 
n = "foobar"; 
// Error: Type 'string' is not assignable  
//        to type 'number'.
9
Catch errors early
10
Basic Types
11
Basic types
// numbers 
let n: number = 42; 
 
// strings 
let s: string = "Foobar"; 
 
// booleans 
let b: boolean = true; 
 
// arrays 
let a: number[] = [ 1, 2, 4, 8 ];
12
Enum
enum Currency { 
  EUR, USD, JPY, GBP  
}; 
             
let c: Currency = Currency.EUR; 
             
c = "FOOBAR"; 
// Error: Property 'FOOBAR' does not exist on 
//        type 'typeof Currency'.
13
Tuple
let price: [ number, string ]; 
 
price = [ 12.99, "EUR" ]; 
// > OK 
   
price = [ "EUR", 12.99 ]; 
// Error: Type '[string, number]' is not  
//        assignable to type '[number, string]'.
14
Any
let a: any; 
             
a = "Foobar"; 
             
a = false; 
             
a = [ 42, "Foobar", true ]; 
             
a = document.getElementById( "foobar" );
15
Type assertions
let value: any = "Christian"; 
 
(<string>value).substring( 0, 5 ); 
// > "Chris"
let value: any = "Christian"; 
 
(value as string).substring( 0, 5 ); 
// > "Chris"
16
Type Inference
let n = 3;        // inferred type is 'number' 
          
n = "foobar"; 
// Error: Type 'string' is not assignable  
//        to type 'number'.
let n = null;       // inferred type is 'any' 
if( something ) { 
  n = 42;           // OK 
  n = "foobar";     // OK? :­( 
}
17
noImplicitAny = true
let n = null;           // inferred type is 'any' 
if( something ) { 
  n = 42; 
} 
// Error: Variable 'n' implicitly has an 'any' type.
let n: number = null;   // type specified manually 
if( something ) { 
  n = 42; 
} 
// OK
18
Advanced Types
let t: string|number;     // union type 
 
t = 42; 
// > OK 
 
t = "foobar"; 
// > OK 
 
t = true; 
// Error: Type 'boolean' is not assignable to type  
//        'string | number'.
19
Advanced Types
type MyType = string|number;    // type alias 
 
let t: MyType = "foobar";
type Mode = "simple" | "advanced"; 
 
let mode: Mode = "simple"; 
 
mode = "foobar"; 
// Error: Type '"foobar"' is not assignable to  
//        type 'Mode'
20
Functions
21
Typed Functions
function formatEuro( value: number ): string { 
  return value.toFixed( 2 ) + "€"; 
}
formatEuro( 42 ); 
// > "42.00€"
22
Optional Parameters
function formatMoney( value: number,  
                      currency?: string ): string { 
 
  return value.toFixed( 2 ) + ( currency || "€" ); 
 
}
formatMoney( 42 ); 
// > "42.00€" 
 
formatMoney( 42, "$" ); 
// > "42.00$"
23
Default Parameters
function formatMoney( value: number,  
                      currency: string = "€" ): string { 
 
  return value.toFixed( 2 ) + currency; 
 
}
formatMoney( 42 ); 
// > "42.00€" 
 
formatMoney( 42, "$" ); 
// > "42.00$"
24
Interfaces
25
Interfaces
let money = { 
  amount: 42, 
  currency: "€" 
};
interface Money { 
  amount: number; 
  currency: string; 
}
26
Using Interfaces
interface Money { 
  amount: number; 
  currency: string; 
} 
 
let money: Money = { 
  amount: 42, 
  currency: "€" 
}; 
 
let amount = money.amount;     // OK 
             
let currency = money.curency; 
// Error: Property 'curency' does not exist on type
27
Functions
interface Money { 
  amount: number; 
  currency: string; 
  asString: () => string; 
} 
 
let money: Money = { 
  amount: 42, 
  currency: "€", 
  asString: function(): string { 
    return this.amount.toFixed( 2 ) + this.currency; 
  } 
}; 
 
money.asString();     // > 42.00€
28
Function Types
interface AsStringFunc { 
  (): string; 
} 
 
interface Money { 
  amount: number; 
  currency: string; 
  asString: AsStringFunc; 
} 
 
let money: Money = { ... }; 
             
money.asString();     // > 42.00€
29
Extending Interfaces
interface AsStringFunc { 
  (): string; 
} 
 
interface Printable { 
  asString: AsStringFunc; 
} 
 
interface Money extends Printable { 
  amount: number; 
  currency: string; 
}
30
Structural Subtyping
interface Foo { 
  value: number; 
} 
 
interface Bar { 
  value: number; 
} 
 
let foo: Foo = { 
  value: 3 
}; 
 
let bar: Bar = foo;   // OK
31
Classes
32
The old way
var Money = function ( amount, currency ) { 
  this.amount = amount; 
  this.currency = currency; 
}; 
 
Money.prototype.asString = function () { 
  return this.amount.toFixed( 2 ) + this.currency; 
}; 
 
var money = new Money( 42, "€" ); 
 
money.asString(); 
// > 42.00€
33
ECMAScript 2015
class Money { 
 
  constructor( amount, currency ) { 
    this.amount = amount; 
    this.currency = currency; 
  } 
 
  asString() { 
    return this.amount.toFixed( 2 ) + this.currency; 
  } 
 
} 
 
let money = new Money( 42, "€" );
34
TypeScript
class Money { 
 
  private amount: number; 
  private currency: string; 
 
  constructor( amount: number, currency: string ) { 
    this.amount = amount; 
    this.currency = currency; 
  } 
 
  asString(): string { 
    return this.amount.toFixed( 2 ) + this.currency; 
  } 
 
}
35
Readonly Properties
class Money { 
 
  private readonly amount: number; 
  private readonly currency: string; 
 
  constructor( amount: number, currency: string ) { 
    this.amount = amount; 
    this.currency = currency; 
  } 
 
  asString(): string { 
    return this.amount.toFixed( 2 ) + this.currency; 
  } 
 
}
36
Parameter Properties
class Money { 
 
  constructor( private amount: number, 
               private currency: string ) { 
    // empty 
  } 
 
  asString(): string { 
    return this.amount.toFixed( 2 ) + this.currency; 
  } 
 
}
37
Implementing Interfaces
interface Printable { 
  asString(): string; 
} 
 
class Money implements Printable { 
 
  constructor( private amount: number, 
               private currency: string ) { 
    // nothing here 
  } 
 
  asString(): string { 
    return this.amount.toFixed( 2 ) + this.currency; 
  } 
}
38
There is more:
Inheritance
Abstract classes
Static properties
Visibility modifiers
Accessors
Generics
39
Modules
40
Export / Import
// math.ts 
export function max( a: number, b: number ): number { 
  return a > b ? a : b; 
} 
 
export let PI = 3.14156;
// foobar.ts 
import { max, PI } from "./math.ts"; 
 
max(9, 13) === 13;       // > true 
PI === 3.14156;          // > true
41
Export / Import
// math.ts 
export function max( a: number, b: number ): number { 
  return a > b ? a : b; 
} 
 
export let PI = 3.14156;
// foobar.ts 
import * as math from "./math.ts"; 
 
math.max(9, 13) === 13   // > true 
math.PI === 3.14156      // > true
42
Export / Import
// money.ts 
export class Money { 
 
  constructor( private amount: number, 
               private currency: string ) { 
  } 
 
  asString(): string { 
    return this.amount.toFixed( 2 ) + this.currency; 
  } 
}
import { Money } from "./money.ts"; 
 
let m = new Money( 42, "€" );
43
More ES2016 magic
44
ES2016 Constants
const users = [ "Christian" ]; 
 
users.push( "Jim" ); 
// > 2 
 
users = [ "Bob" ]; 
// Error: Left­hand side of assignment cannot 
//        be a constant or a read­only property.
45
ES2016 Template Strings
let name = "Christian"; 
let count = 213; 
 
let message = 
    `Hello ${name}, you have ${count} messages.`;
let html = 
    `<h1>Hello ${name}</h1> 
     <p> 
       You have ${count} unread messages 
     </p>`;
46
Classic Functions
let numbers = [ 1, 2, 3, 4, 5, 6, 7, 8, 9 ]; 
 
numbers.filter( function(n) { 
  return n % 2 !== 0; 
} ); 
// > [ 1, 3, 5, 7, 9 ]
47
ES2016 Arrow Functions
numbers.filter( n => { 
  return n % 2 !== 0; 
} ); 
// > [ 1, 3, 5, 7, 9 ]
numbers.filter( n => n % 2 !== 0 ); 
// > [ 1, 3, 5, 7, 9 ]
numbers.filter( n => n % 2 ); 
// > [ 1, 3, 5, 7, 9 ]
48
Give it a try
49
TypeScript REPL
http://www.typescriptlang.org/play/
50
Java Integration
https://github.com/chkal/frontend-boilerplate
Apache Maven
node.js / npm
Webpack / TypeScript
Karma / Jasmine
51
Thanks!
Questions?
http://bit.ly/wjax16-typescript
https://github.com/chkal/frontend-boilerplate
/Christian Kaltepoth @chkal

More Related Content

Similar to TypeScript Slides: Das bessere JavaScript

TypeScript-SPS-melb.pptx
TypeScript-SPS-melb.pptxTypeScript-SPS-melb.pptx
TypeScript-SPS-melb.pptxaccordv12
 
Power Leveling your TypeScript
Power Leveling your TypeScriptPower Leveling your TypeScript
Power Leveling your TypeScriptOffirmo
 
Introduction to TypeScript by Winston Levi
Introduction to TypeScript by Winston LeviIntroduction to TypeScript by Winston Levi
Introduction to TypeScript by Winston LeviWinston Levi
 
JavaScript 2.0 in Dreamweaver CS4
JavaScript 2.0 in Dreamweaver CS4JavaScript 2.0 in Dreamweaver CS4
JavaScript 2.0 in Dreamweaver CS4alexsaves
 
Final Java-script.pptx
Final Java-script.pptxFinal Java-script.pptx
Final Java-script.pptxAlkanthiSomesh
 
Nodejs & Typescript
Nodejs & TypescriptNodejs & Typescript
Nodejs & TypescriptKnoldus Inc.
 
Clean & Typechecked JS
Clean & Typechecked JSClean & Typechecked JS
Clean & Typechecked JSArthur Puthin
 
Typescript overview
Typescript overviewTypescript overview
Typescript overviewcodeblock
 
Practical JavaScript Programming - Session 1/8
Practical JavaScript Programming - Session 1/8Practical JavaScript Programming - Session 1/8
Practical JavaScript Programming - Session 1/8Wilson Su
 
Static types on javascript?! Type checking approaches to ensure healthy appli...
Static types on javascript?! Type checking approaches to ensure healthy appli...Static types on javascript?! Type checking approaches to ensure healthy appli...
Static types on javascript?! Type checking approaches to ensure healthy appli...Arthur Puthin
 
TypeScript: Angular's Secret Weapon
TypeScript: Angular's Secret WeaponTypeScript: Angular's Secret Weapon
TypeScript: Angular's Secret WeaponLaurent Duveau
 
What TypeScript taught me about JavaScript
What TypeScript taught me about JavaScriptWhat TypeScript taught me about JavaScript
What TypeScript taught me about JavaScriptStefan Baumgartner
 
TypeScript: Angular's Secret Weapon
TypeScript: Angular's Secret WeaponTypeScript: Angular's Secret Weapon
TypeScript: Angular's Secret WeaponLaurent Duveau
 
WT Unit-3 PPT.pptx
WT Unit-3 PPT.pptxWT Unit-3 PPT.pptx
WT Unit-3 PPT.pptxTusharTikia
 
KLab 2019 Meetup - TypeScript come (forse) non lo hai mai visto
KLab 2019 Meetup - TypeScript come (forse) non lo hai mai vistoKLab 2019 Meetup - TypeScript come (forse) non lo hai mai visto
KLab 2019 Meetup - TypeScript come (forse) non lo hai mai vistoGianluca Carucci
 
BITM3730 10-17.pptx
BITM3730 10-17.pptxBITM3730 10-17.pptx
BITM3730 10-17.pptxMattMarino13
 

Similar to TypeScript Slides: Das bessere JavaScript (20)

TypeScript-SPS-melb.pptx
TypeScript-SPS-melb.pptxTypeScript-SPS-melb.pptx
TypeScript-SPS-melb.pptx
 
Power Leveling your TypeScript
Power Leveling your TypeScriptPower Leveling your TypeScript
Power Leveling your TypeScript
 
Rits Brown Bag - TypeScript
Rits Brown Bag - TypeScriptRits Brown Bag - TypeScript
Rits Brown Bag - TypeScript
 
Introduction to TypeScript by Winston Levi
Introduction to TypeScript by Winston LeviIntroduction to TypeScript by Winston Levi
Introduction to TypeScript by Winston Levi
 
JavaScript_introduction_upload.pdf
JavaScript_introduction_upload.pdfJavaScript_introduction_upload.pdf
JavaScript_introduction_upload.pdf
 
JavaScript 2.0 in Dreamweaver CS4
JavaScript 2.0 in Dreamweaver CS4JavaScript 2.0 in Dreamweaver CS4
JavaScript 2.0 in Dreamweaver CS4
 
Final Java-script.pptx
Final Java-script.pptxFinal Java-script.pptx
Final Java-script.pptx
 
Nodejs & Typescript
Nodejs & TypescriptNodejs & Typescript
Nodejs & Typescript
 
Clean & Typechecked JS
Clean & Typechecked JSClean & Typechecked JS
Clean & Typechecked JS
 
Typescript overview
Typescript overviewTypescript overview
Typescript overview
 
Practical JavaScript Programming - Session 1/8
Practical JavaScript Programming - Session 1/8Practical JavaScript Programming - Session 1/8
Practical JavaScript Programming - Session 1/8
 
Static types on javascript?! Type checking approaches to ensure healthy appli...
Static types on javascript?! Type checking approaches to ensure healthy appli...Static types on javascript?! Type checking approaches to ensure healthy appli...
Static types on javascript?! Type checking approaches to ensure healthy appli...
 
Shifting Gears
Shifting GearsShifting Gears
Shifting Gears
 
TypeScript: Angular's Secret Weapon
TypeScript: Angular's Secret WeaponTypeScript: Angular's Secret Weapon
TypeScript: Angular's Secret Weapon
 
Getting started with typescript
Getting started with typescriptGetting started with typescript
Getting started with typescript
 
What TypeScript taught me about JavaScript
What TypeScript taught me about JavaScriptWhat TypeScript taught me about JavaScript
What TypeScript taught me about JavaScript
 
TypeScript: Angular's Secret Weapon
TypeScript: Angular's Secret WeaponTypeScript: Angular's Secret Weapon
TypeScript: Angular's Secret Weapon
 
WT Unit-3 PPT.pptx
WT Unit-3 PPT.pptxWT Unit-3 PPT.pptx
WT Unit-3 PPT.pptx
 
KLab 2019 Meetup - TypeScript come (forse) non lo hai mai visto
KLab 2019 Meetup - TypeScript come (forse) non lo hai mai vistoKLab 2019 Meetup - TypeScript come (forse) non lo hai mai visto
KLab 2019 Meetup - TypeScript come (forse) non lo hai mai visto
 
BITM3730 10-17.pptx
BITM3730 10-17.pptxBITM3730 10-17.pptx
BITM3730 10-17.pptx
 

More from Christian Kaltepoth

MVC 1.0 - Das neue Webframework in Java EE 8
MVC 1.0 - Das neue Webframework in Java EE 8MVC 1.0 - Das neue Webframework in Java EE 8
MVC 1.0 - Das neue Webframework in Java EE 8Christian Kaltepoth
 
Beyond PrettyFaces - Einführung in Rewrite
Beyond PrettyFaces - Einführung in RewriteBeyond PrettyFaces - Einführung in Rewrite
Beyond PrettyFaces - Einführung in RewriteChristian Kaltepoth
 
Beyond PrettyFaces - Einführung in Rewrite
Beyond PrettyFaces - Einführung in RewriteBeyond PrettyFaces - Einführung in Rewrite
Beyond PrettyFaces - Einführung in RewriteChristian Kaltepoth
 
PrettyFaces: RESTful URLs für JSF
PrettyFaces: RESTful URLs für JSFPrettyFaces: RESTful URLs für JSF
PrettyFaces: RESTful URLs für JSFChristian Kaltepoth
 

More from Christian Kaltepoth (7)

JavaScript im Jahr 2016
JavaScript im Jahr 2016JavaScript im Jahr 2016
JavaScript im Jahr 2016
 
MVC 1.0 - Das neue Webframework in Java EE 8
MVC 1.0 - Das neue Webframework in Java EE 8MVC 1.0 - Das neue Webframework in Java EE 8
MVC 1.0 - Das neue Webframework in Java EE 8
 
JSF vs. GWT? JSF und GWT!
JSF vs. GWT? JSF und GWT!JSF vs. GWT? JSF und GWT!
JSF vs. GWT? JSF und GWT!
 
Beyond PrettyFaces - Einführung in Rewrite
Beyond PrettyFaces - Einführung in RewriteBeyond PrettyFaces - Einführung in Rewrite
Beyond PrettyFaces - Einführung in Rewrite
 
Beyond PrettyFaces - Einführung in Rewrite
Beyond PrettyFaces - Einführung in RewriteBeyond PrettyFaces - Einführung in Rewrite
Beyond PrettyFaces - Einführung in Rewrite
 
Feature Flags mit Togglz
Feature Flags mit TogglzFeature Flags mit Togglz
Feature Flags mit Togglz
 
PrettyFaces: RESTful URLs für JSF
PrettyFaces: RESTful URLs für JSFPrettyFaces: RESTful URLs für JSF
PrettyFaces: RESTful URLs für JSF
 

Recently uploaded

AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfjimielynbastida
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentationphoebematthew05
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 

Recently uploaded (20)

AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdf
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentation
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
The transition to renewables in India.pdf
The transition to renewables in India.pdfThe transition to renewables in India.pdf
The transition to renewables in India.pdf
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 

TypeScript Slides: Das bessere JavaScript