SlideShare a Scribd company logo
Type Systems
@ddprrt • fettblog.eu
TypeScript's Type System
workingdraft.de
@workingdraft
technologieplauscherl.at
@plauscherl
workingdraft.de
@workingdraft
technologieplauscherl.at
@plauscherl
scriptconf.org
@scriptconf
workingdraft.de
@workingdraft
technologieplauscherl.at
@plauscherl
scriptconf.org
@scriptconf
workingdraft.de ?
@workingdraft
scriptconf.org
TypeScript's Type System
TypeScript's Type System
MEETUPS
TypeScript's Type System
TypeScript's Type System
Endlich kann ich Klassen schreiben!
TypeScript's Type System
TypeScript's Type System
TypeScript's Type System
= =
== ===
=
=
==
===
Turbo Pascal
Borland Delphi
C#
TypeScript
Anders Hejlsberg
TypeScript's Type System
TypeScript's Type System
TypeScript's Type System
GOSLING
You guys (at Microsoft)
still don't get it,
because it's sort of
Java with reliability,
productivity and
security deleted
- James Gosling
reliability
productivity
reliability productivity
Design goals
TypeScript's Type System
https://www.ecma-international.org/activities/Languages/Language%20overview.pdf
https://web.archive.org/web/20080723235906/http://ecmascript.org/es4/spec/evolutionary-programming-tutorial.pdf
⭐ Open Source and Open Development
" Closely track ECMAScript standard
# Innovate in type system
$ Best of breed tooling
⏬ Continually lower barrier to entry
& Community, community, community
⭐ Open Source and Open Development
" Closely track ECMAScript standard
# Innovate in type system
$ Best of breed tooling
⏬ Continually lower barrier to entry
& Community, community, community
⭐ TypeScript IS JavaScript
⭐ Language innovation through ECMAScript
⭐ Type system innovation through use cases
⭐ Tooling as prime citizen
Non-goal: Apply a sound or "provably correct" type system. Instead, strike a balance
between correctness and productivity.
Type systems, oida!
⛩ Gradual, structural, generic
( Distinct value / type namespaces
) Extensive type inference
* Control flow analysis
& Object-oriented and functional
Gradual, structural, generic
Duck typing
TypeScript's Type System
TypeScript's Type System
TypeScript's Type System
TypeScript's Type System
Type namespaces
primitive types
number
string
boolean
Symbol
Object
null
undefined
number
string
boolean
Symbol
Object
null
undefined
top types any
unknown
number
string
boolean
Symbol
Object
null
undefined
bottom types never
primitive types
number
string
boolean
Symbol
Object
null
undefined
primitive types
number
string
boolean
null
undefined
value types
number
string
boolean
null
undefined
true
false
-1
1000000
NaN
6
120.3
…
…
‘Hello world’
‘Baumi’
value types
true
false
-1
1000000
NaN
6
120.3
…
…
‘Hello world’
‘Baumi’null
undefined
value types
number
string
boolean
true
false
-1
1000000
NaN
6
120.3
…
…
‘Hello world’
‘Baumi’null
undefined
number |
string |
undefined
number
string
boolean
true
false
-1
1000000
NaN
6
120.3
…
…
‘Hello world’
‘Baumi’null
undefined
Intersection types
{ a: string }
{ b: string }
{
a: string,
b: string
}
Examples
fin

More Related Content

What's hot (6)

Full-Stack Development
Full-Stack DevelopmentFull-Stack Development
Full-Stack Development
Dhilipsiva DS
 
What is a Full stack developer? - Tech talk
What is a Full stack developer? - Tech talk What is a Full stack developer? - Tech talk
What is a Full stack developer? - Tech talk
Bui Hai An
 
Beyond Full Stack Engineering
Beyond Full Stack EngineeringBeyond Full Stack Engineering
Beyond Full Stack Engineering
Adam Hepton
 
Build Better Software Together
Build Better Software TogetherBuild Better Software Together
Build Better Software Together
Sven Peters
 
Scaling Mobile Engineering
Scaling Mobile EngineeringScaling Mobile Engineering
Scaling Mobile Engineering
Deniz Veli
 
3 hacks to accelerate your data science career
3 hacks to accelerate your data science career 3 hacks to accelerate your data science career
3 hacks to accelerate your data science career
Alexey Grigorev
 
Full-Stack Development
Full-Stack DevelopmentFull-Stack Development
Full-Stack Development
Dhilipsiva DS
 
What is a Full stack developer? - Tech talk
What is a Full stack developer? - Tech talk What is a Full stack developer? - Tech talk
What is a Full stack developer? - Tech talk
Bui Hai An
 
Beyond Full Stack Engineering
Beyond Full Stack EngineeringBeyond Full Stack Engineering
Beyond Full Stack Engineering
Adam Hepton
 
Build Better Software Together
Build Better Software TogetherBuild Better Software Together
Build Better Software Together
Sven Peters
 
Scaling Mobile Engineering
Scaling Mobile EngineeringScaling Mobile Engineering
Scaling Mobile Engineering
Deniz Veli
 
3 hacks to accelerate your data science career
3 hacks to accelerate your data science career 3 hacks to accelerate your data science career
3 hacks to accelerate your data science career
Alexey Grigorev
 

Similar to TypeScript's Type System (20)

Introducing TypeScript
Introducing TypeScriptIntroducing TypeScript
Introducing TypeScript
Microsoft Developer Network (MSDN) - Belgium and Luxembourg
 
Migrating Web SDK from JS to TS
Migrating Web SDK from JS to TSMigrating Web SDK from JS to TS
Migrating Web SDK from JS to TS
Grigory Petrov
 
Introduction to TypeScript
Introduction to TypeScriptIntroduction to TypeScript
Introduction to TypeScript
Bob German
 
TypeScipt - Get Started
TypeScipt - Get StartedTypeScipt - Get Started
TypeScipt - Get Started
Krishnanand Sivaraj
 
TypeScript
TypeScriptTypeScript
TypeScript
Fabian Vilers
 
Introduction to TypeScript
Introduction to TypeScriptIntroduction to TypeScript
Introduction to TypeScript
André Pitombeira
 
TypeScript-SPS-melb.pptx
TypeScript-SPS-melb.pptxTypeScript-SPS-melb.pptx
TypeScript-SPS-melb.pptx
accordv12
 
Type script
Type scriptType script
Type script
srinivaskapa1
 
Typescript in 30mins
Typescript in 30mins Typescript in 30mins
Typescript in 30mins
Udaya Kumar
 
Learning typescript
Learning typescriptLearning typescript
Learning typescript
Alexandre Marreiros
 
Scenic City Summit 2018 - TypeScript 101
Scenic City Summit 2018 - TypeScript 101Scenic City Summit 2018 - TypeScript 101
Scenic City Summit 2018 - TypeScript 101
Frances Coronel
 
One language to rule them all type script
One language to rule them all type scriptOne language to rule them all type script
One language to rule them all type script
Gil Fink
 
11_typescript.pptx for north south university course cse425
11_typescript.pptx for north south university course cse42511_typescript.pptx for north south university course cse425
11_typescript.pptx for north south university course cse425
AnikSahaToni19126196
 
Introducing type script
Introducing type scriptIntroducing type script
Introducing type script
Remo Jansen
 
Type script
Type scriptType script
Type script
Mallikarjuna G D
 
Typescript: Beginner to Advanced
Typescript: Beginner to AdvancedTypescript: Beginner to Advanced
Typescript: Beginner to Advanced
Talentica Software
 
4Developers: Tomasz Ducin- JavaScript + Java = TypeScript
4Developers: Tomasz Ducin- JavaScript + Java = TypeScript4Developers: Tomasz Ducin- JavaScript + Java = TypeScript
4Developers: Tomasz Ducin- JavaScript + Java = TypeScript
PROIDEA
 
TypeScript - Javascript done right
TypeScript - Javascript done rightTypeScript - Javascript done right
TypeScript - Javascript done right
Wekoslav Stefanovski
 
Back to the Future with TypeScript
Back to the Future with TypeScriptBack to the Future with TypeScript
Back to the Future with TypeScript
Aleš Najmann
 
Typescript: JS code just got better!
Typescript: JS code just got better!Typescript: JS code just got better!
Typescript: JS code just got better!
amit bezalel
 
Migrating Web SDK from JS to TS
Migrating Web SDK from JS to TSMigrating Web SDK from JS to TS
Migrating Web SDK from JS to TS
Grigory Petrov
 
Introduction to TypeScript
Introduction to TypeScriptIntroduction to TypeScript
Introduction to TypeScript
Bob German
 
TypeScript-SPS-melb.pptx
TypeScript-SPS-melb.pptxTypeScript-SPS-melb.pptx
TypeScript-SPS-melb.pptx
accordv12
 
Typescript in 30mins
Typescript in 30mins Typescript in 30mins
Typescript in 30mins
Udaya Kumar
 
Scenic City Summit 2018 - TypeScript 101
Scenic City Summit 2018 - TypeScript 101Scenic City Summit 2018 - TypeScript 101
Scenic City Summit 2018 - TypeScript 101
Frances Coronel
 
One language to rule them all type script
One language to rule them all type scriptOne language to rule them all type script
One language to rule them all type script
Gil Fink
 
11_typescript.pptx for north south university course cse425
11_typescript.pptx for north south university course cse42511_typescript.pptx for north south university course cse425
11_typescript.pptx for north south university course cse425
AnikSahaToni19126196
 
Introducing type script
Introducing type scriptIntroducing type script
Introducing type script
Remo Jansen
 
Typescript: Beginner to Advanced
Typescript: Beginner to AdvancedTypescript: Beginner to Advanced
Typescript: Beginner to Advanced
Talentica Software
 
4Developers: Tomasz Ducin- JavaScript + Java = TypeScript
4Developers: Tomasz Ducin- JavaScript + Java = TypeScript4Developers: Tomasz Ducin- JavaScript + Java = TypeScript
4Developers: Tomasz Ducin- JavaScript + Java = TypeScript
PROIDEA
 
TypeScript - Javascript done right
TypeScript - Javascript done rightTypeScript - Javascript done right
TypeScript - Javascript done right
Wekoslav Stefanovski
 
Back to the Future with TypeScript
Back to the Future with TypeScriptBack to the Future with TypeScript
Back to the Future with TypeScript
Aleš Najmann
 
Typescript: JS code just got better!
Typescript: JS code just got better!Typescript: JS code just got better!
Typescript: JS code just got better!
amit bezalel
 

More from Stefan Baumgartner (13)

WASM! WASI! WAGI! WAT?
WASM! WASI! WAGI! WAT?WASM! WASI! WAGI! WAT?
WASM! WASI! WAGI! WAT?
Stefan Baumgartner
 
Serverless Rust
Serverless RustServerless Rust
Serverless Rust
Stefan Baumgartner
 
What TypeScript taught me about JavaScript
What TypeScript taught me about JavaScriptWhat TypeScript taught me about JavaScript
What TypeScript taught me about JavaScript
Stefan Baumgartner
 
Real-world component libraries at scale
Real-world component libraries at scaleReal-world component libraries at scale
Real-world component libraries at scale
Stefan Baumgartner
 
Jamstack on Azure
Jamstack on AzureJamstack on Azure
Jamstack on Azure
Stefan Baumgartner
 
The hero's journey
The hero's journeyThe hero's journey
The hero's journey
Stefan Baumgartner
 
Sketchmine: Design Systems Tooling
Sketchmine: Design Systems ToolingSketchmine: Design Systems Tooling
Sketchmine: Design Systems Tooling
Stefan Baumgartner
 
Automating UI development
Automating UI developmentAutomating UI development
Automating UI development
Stefan Baumgartner
 
A hero's journey in JavaScript frameworks
A hero's journey in JavaScript frameworksA hero's journey in JavaScript frameworks
A hero's journey in JavaScript frameworks
Stefan Baumgartner
 
[German] Ab mit dem Kopf!
[German] Ab mit dem Kopf![German] Ab mit dem Kopf!
[German] Ab mit dem Kopf!
Stefan Baumgartner
 
Advanced JavaScript build pipelines using Gulp.js
Advanced JavaScript build pipelines using Gulp.jsAdvanced JavaScript build pipelines using Gulp.js
Advanced JavaScript build pipelines using Gulp.js
Stefan Baumgartner
 
Speed Index, explained!
Speed Index, explained!Speed Index, explained!
Speed Index, explained!
Stefan Baumgartner
 
Plumbin Pipelines - A Gulp.js workshop
Plumbin Pipelines - A Gulp.js workshopPlumbin Pipelines - A Gulp.js workshop
Plumbin Pipelines - A Gulp.js workshop
Stefan Baumgartner
 

Recently uploaded (20)

Dev Dives: System-to-system integration with UiPath API Workflows
Dev Dives: System-to-system integration with UiPath API WorkflowsDev Dives: System-to-system integration with UiPath API Workflows
Dev Dives: System-to-system integration with UiPath API Workflows
UiPathCommunity
 
UiPath Community Berlin: Studio Tips & Tricks and UiPath Insights
UiPath Community Berlin: Studio Tips & Tricks and UiPath InsightsUiPath Community Berlin: Studio Tips & Tricks and UiPath Insights
UiPath Community Berlin: Studio Tips & Tricks and UiPath Insights
UiPathCommunity
 
From Legacy to Cloud-Native: A Guide to AWS Modernization.pptx
From Legacy to Cloud-Native: A Guide to AWS Modernization.pptxFrom Legacy to Cloud-Native: A Guide to AWS Modernization.pptx
From Legacy to Cloud-Native: A Guide to AWS Modernization.pptx
Mohammad Jomaa
 
Maxx nft market place new generation nft marketing place
Maxx nft market place new generation nft marketing placeMaxx nft market place new generation nft marketing place
Maxx nft market place new generation nft marketing place
usersalmanrazdelhi
 
The 2025 Digital Adoption Blueprint.pptx
The 2025 Digital Adoption Blueprint.pptxThe 2025 Digital Adoption Blueprint.pptx
The 2025 Digital Adoption Blueprint.pptx
aptyai
 
Security Operations and the Defense Analyst - Splunk Certificate
Security Operations and the Defense Analyst - Splunk CertificateSecurity Operations and the Defense Analyst - Splunk Certificate
Security Operations and the Defense Analyst - Splunk Certificate
VICTOR MAESTRE RAMIREZ
 
Offshore IT Support: Balancing In-House and Offshore Help Desk Technicians
Offshore IT Support: Balancing In-House and Offshore Help Desk TechniciansOffshore IT Support: Balancing In-House and Offshore Help Desk Technicians
Offshore IT Support: Balancing In-House and Offshore Help Desk Technicians
john823664
 
Master tester AI toolbox - Kari Kakkonen at Testaus ja AI 2025 Professio
Master tester AI toolbox - Kari Kakkonen at Testaus ja AI 2025 ProfessioMaster tester AI toolbox - Kari Kakkonen at Testaus ja AI 2025 Professio
Master tester AI toolbox - Kari Kakkonen at Testaus ja AI 2025 Professio
Kari Kakkonen
 
AI Emotional Actors: “When Machines Learn to Feel and Perform"
AI Emotional Actors:  “When Machines Learn to Feel and Perform"AI Emotional Actors:  “When Machines Learn to Feel and Perform"
AI Emotional Actors: “When Machines Learn to Feel and Perform"
AkashKumar809858
 
AI in Java - MCP in Action, Langchain4J-CDI, SmallRye-LLM, Spring AI
AI in Java - MCP in Action, Langchain4J-CDI, SmallRye-LLM, Spring AIAI in Java - MCP in Action, Langchain4J-CDI, SmallRye-LLM, Spring AI
AI in Java - MCP in Action, Langchain4J-CDI, SmallRye-LLM, Spring AI
Buhake Sindi
 
European Accessibility Act & Integrated Accessibility Testing
European Accessibility Act & Integrated Accessibility TestingEuropean Accessibility Act & Integrated Accessibility Testing
European Accessibility Act & Integrated Accessibility Testing
Julia Undeutsch
 
John Carmack’s Slides From His Upper Bound 2025 Talk
John Carmack’s Slides From His Upper Bound 2025 TalkJohn Carmack’s Slides From His Upper Bound 2025 Talk
John Carmack’s Slides From His Upper Bound 2025 Talk
Razin Mustafiz
 
Introducing FME Realize: A New Era of Spatial Computing and AR
Introducing FME Realize: A New Era of Spatial Computing and ARIntroducing FME Realize: A New Era of Spatial Computing and AR
Introducing FME Realize: A New Era of Spatial Computing and AR
Safe Software
 
Protecting Your Sensitive Data with Microsoft Purview - IRMS 2025
Protecting Your Sensitive Data with Microsoft Purview - IRMS 2025Protecting Your Sensitive Data with Microsoft Purview - IRMS 2025
Protecting Your Sensitive Data with Microsoft Purview - IRMS 2025
Nikki Chapple
 
"AI in the browser: predicting user actions in real time with TensorflowJS", ...
"AI in the browser: predicting user actions in real time with TensorflowJS", ..."AI in the browser: predicting user actions in real time with TensorflowJS", ...
"AI in the browser: predicting user actions in real time with TensorflowJS", ...
Fwdays
 
State-Dependent Conformal Perception Bounds for Neuro-Symbolic Verification o...
State-Dependent Conformal Perception Bounds for Neuro-Symbolic Verification o...State-Dependent Conformal Perception Bounds for Neuro-Symbolic Verification o...
State-Dependent Conformal Perception Bounds for Neuro-Symbolic Verification o...
Ivan Ruchkin
 
Introducing Ensemble Cloudlet vRouter
Introducing Ensemble  Cloudlet vRouterIntroducing Ensemble  Cloudlet vRouter
Introducing Ensemble Cloudlet vRouter
Adtran
 
Marko.js - Unsung Hero of Scalable Web Frameworks (DevDays 2025)
Marko.js - Unsung Hero of Scalable Web Frameworks (DevDays 2025)Marko.js - Unsung Hero of Scalable Web Frameworks (DevDays 2025)
Marko.js - Unsung Hero of Scalable Web Frameworks (DevDays 2025)
Eugene Fidelin
 
Talk: On an adventure into the depths of Maven - Kaya Weers
Talk: On an adventure into the depths of Maven - Kaya WeersTalk: On an adventure into the depths of Maven - Kaya Weers
Talk: On an adventure into the depths of Maven - Kaya Weers
Kaya Weers
 
SAP Sapphire 2025 ERP1612 Enhancing User Experience with SAP Fiori and AI
SAP Sapphire 2025 ERP1612 Enhancing User Experience with SAP Fiori and AISAP Sapphire 2025 ERP1612 Enhancing User Experience with SAP Fiori and AI
SAP Sapphire 2025 ERP1612 Enhancing User Experience with SAP Fiori and AI
Peter Spielvogel
 
Dev Dives: System-to-system integration with UiPath API Workflows
Dev Dives: System-to-system integration with UiPath API WorkflowsDev Dives: System-to-system integration with UiPath API Workflows
Dev Dives: System-to-system integration with UiPath API Workflows
UiPathCommunity
 
UiPath Community Berlin: Studio Tips & Tricks and UiPath Insights
UiPath Community Berlin: Studio Tips & Tricks and UiPath InsightsUiPath Community Berlin: Studio Tips & Tricks and UiPath Insights
UiPath Community Berlin: Studio Tips & Tricks and UiPath Insights
UiPathCommunity
 
From Legacy to Cloud-Native: A Guide to AWS Modernization.pptx
From Legacy to Cloud-Native: A Guide to AWS Modernization.pptxFrom Legacy to Cloud-Native: A Guide to AWS Modernization.pptx
From Legacy to Cloud-Native: A Guide to AWS Modernization.pptx
Mohammad Jomaa
 
Maxx nft market place new generation nft marketing place
Maxx nft market place new generation nft marketing placeMaxx nft market place new generation nft marketing place
Maxx nft market place new generation nft marketing place
usersalmanrazdelhi
 
The 2025 Digital Adoption Blueprint.pptx
The 2025 Digital Adoption Blueprint.pptxThe 2025 Digital Adoption Blueprint.pptx
The 2025 Digital Adoption Blueprint.pptx
aptyai
 
Security Operations and the Defense Analyst - Splunk Certificate
Security Operations and the Defense Analyst - Splunk CertificateSecurity Operations and the Defense Analyst - Splunk Certificate
Security Operations and the Defense Analyst - Splunk Certificate
VICTOR MAESTRE RAMIREZ
 
Offshore IT Support: Balancing In-House and Offshore Help Desk Technicians
Offshore IT Support: Balancing In-House and Offshore Help Desk TechniciansOffshore IT Support: Balancing In-House and Offshore Help Desk Technicians
Offshore IT Support: Balancing In-House and Offshore Help Desk Technicians
john823664
 
Master tester AI toolbox - Kari Kakkonen at Testaus ja AI 2025 Professio
Master tester AI toolbox - Kari Kakkonen at Testaus ja AI 2025 ProfessioMaster tester AI toolbox - Kari Kakkonen at Testaus ja AI 2025 Professio
Master tester AI toolbox - Kari Kakkonen at Testaus ja AI 2025 Professio
Kari Kakkonen
 
AI Emotional Actors: “When Machines Learn to Feel and Perform"
AI Emotional Actors:  “When Machines Learn to Feel and Perform"AI Emotional Actors:  “When Machines Learn to Feel and Perform"
AI Emotional Actors: “When Machines Learn to Feel and Perform"
AkashKumar809858
 
AI in Java - MCP in Action, Langchain4J-CDI, SmallRye-LLM, Spring AI
AI in Java - MCP in Action, Langchain4J-CDI, SmallRye-LLM, Spring AIAI in Java - MCP in Action, Langchain4J-CDI, SmallRye-LLM, Spring AI
AI in Java - MCP in Action, Langchain4J-CDI, SmallRye-LLM, Spring AI
Buhake Sindi
 
European Accessibility Act & Integrated Accessibility Testing
European Accessibility Act & Integrated Accessibility TestingEuropean Accessibility Act & Integrated Accessibility Testing
European Accessibility Act & Integrated Accessibility Testing
Julia Undeutsch
 
John Carmack’s Slides From His Upper Bound 2025 Talk
John Carmack’s Slides From His Upper Bound 2025 TalkJohn Carmack’s Slides From His Upper Bound 2025 Talk
John Carmack’s Slides From His Upper Bound 2025 Talk
Razin Mustafiz
 
Introducing FME Realize: A New Era of Spatial Computing and AR
Introducing FME Realize: A New Era of Spatial Computing and ARIntroducing FME Realize: A New Era of Spatial Computing and AR
Introducing FME Realize: A New Era of Spatial Computing and AR
Safe Software
 
Protecting Your Sensitive Data with Microsoft Purview - IRMS 2025
Protecting Your Sensitive Data with Microsoft Purview - IRMS 2025Protecting Your Sensitive Data with Microsoft Purview - IRMS 2025
Protecting Your Sensitive Data with Microsoft Purview - IRMS 2025
Nikki Chapple
 
"AI in the browser: predicting user actions in real time with TensorflowJS", ...
"AI in the browser: predicting user actions in real time with TensorflowJS", ..."AI in the browser: predicting user actions in real time with TensorflowJS", ...
"AI in the browser: predicting user actions in real time with TensorflowJS", ...
Fwdays
 
State-Dependent Conformal Perception Bounds for Neuro-Symbolic Verification o...
State-Dependent Conformal Perception Bounds for Neuro-Symbolic Verification o...State-Dependent Conformal Perception Bounds for Neuro-Symbolic Verification o...
State-Dependent Conformal Perception Bounds for Neuro-Symbolic Verification o...
Ivan Ruchkin
 
Introducing Ensemble Cloudlet vRouter
Introducing Ensemble  Cloudlet vRouterIntroducing Ensemble  Cloudlet vRouter
Introducing Ensemble Cloudlet vRouter
Adtran
 
Marko.js - Unsung Hero of Scalable Web Frameworks (DevDays 2025)
Marko.js - Unsung Hero of Scalable Web Frameworks (DevDays 2025)Marko.js - Unsung Hero of Scalable Web Frameworks (DevDays 2025)
Marko.js - Unsung Hero of Scalable Web Frameworks (DevDays 2025)
Eugene Fidelin
 
Talk: On an adventure into the depths of Maven - Kaya Weers
Talk: On an adventure into the depths of Maven - Kaya WeersTalk: On an adventure into the depths of Maven - Kaya Weers
Talk: On an adventure into the depths of Maven - Kaya Weers
Kaya Weers
 
SAP Sapphire 2025 ERP1612 Enhancing User Experience with SAP Fiori and AI
SAP Sapphire 2025 ERP1612 Enhancing User Experience with SAP Fiori and AISAP Sapphire 2025 ERP1612 Enhancing User Experience with SAP Fiori and AI
SAP Sapphire 2025 ERP1612 Enhancing User Experience with SAP Fiori and AI
Peter Spielvogel
 

TypeScript's Type System