SlideShare ist ein Scribd-Unternehmen logo
1 von 51
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Ähnlich wie 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
 

Ähnlich wie 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
 

Mehr von 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
 

Mehr von 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
 

Kürzlich hochgeladen

GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 

Kürzlich hochgeladen (20)

GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 

TypeScript Slides: Das bessere JavaScript