Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Types in Real Life
Search
Sibelius Seraphini
July 13, 2018
Technology
4
300
Types in Real Life
Practical approve to types in javascript
Sibelius Seraphini
July 13, 2018
Tweet
Share
More Decks by Sibelius Seraphini
See All by Sibelius Seraphini
Por que criar uma nova Fintech?
sibelius
1
29
As Dores de uma Fintech
sibelius
1
290
Woovi - Safe Coding Practices
sibelius
1
73
⛔ No Cloud: how Woovi moved from the Cloud to its own servers
sibelius
1
720
React Colocation
sibelius
2
300
The Frontend Dichotomy
sibelius
5
720
React Native Bridges Architectures
sibelius
2
1.3k
What's next?
sibelius
3
640
ReactConfBR - Is Relay Modern the Future?
sibelius
3
930
Other Decks in Technology
See All in Technology
迷わない!AI×MCP連携のリファレンスアーキテクチャ完全ガイド
cdataj
0
630
CodeRabbit CLI + Claude Codeの連携について
oikon48
0
520
Introduction to Sansan Meishi Maker Development Engineer
sansan33
PRO
0
340
純粋なイミュータブルモデルを設計してからイベントソーシングと組み合わせるDeciderの実践方法の紹介 /Introducing Decider Pattern with Event Sourcing
tomohisa
1
1.2k
Exadata Database Service ソフトウェアのアップデートとアップグレードの概要
oracle4engineer
PRO
1
1.2k
Behind the Stream - How AbemaTV Engineers Build Video Apps at Scale
ygoto3
0
120
さくらのクラウドでのシークレット管理を考える/tamachi.sre#2
fujiwara3
1
210
持続可能な開発のためのミニマリズム
sansantech
PRO
3
420
kintone開発のプラットフォームエンジニアの紹介
cybozuinsideout
PRO
0
550
Hardware/Software Co-design: Motivations and reflections with respect to security
bcantrill
1
220
Web Intelligence and Visual Media Analytics
weblyzard
PRO
1
6.8k
All About Sansan – for New Global Engineers
sansan33
PRO
1
1.3k
Featured
See All Featured
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
359
30k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
How to train your dragon (web standard)
notwaldorf
97
6.5k
[SF Ruby Conf 2025] Rails X
palkan
0
710
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
110
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
620
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.1k
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
250
The Illustrated Children's Guide to Kubernetes
chrisshort
51
51k
Darren the Foodie - Storyboard
khoart
PRO
2
2.2k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
34k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
0
420
Transcript
Types in Real Life How to improve your dev workflow
Sibelius Seraphini
Sibelius Seraphini @sibelius @sseraphini 2
- Motivation - Basics - Sum types - Generics -
REST api study case - React - Redux - Utilities Outline 3
Type System in JS 4
- Less bugs - More maintainability - Type Driven Development
Motivation 5
- Better tools support - Code completion - Refactor -
Documentation - Jump to definition Motivation 6
- Types are set of values - string - 'a'
| 'b' | 'c' | ... - number - 1 | 2 | 3 | ... - boolean - true | false - function - string -> boolean | ... - object - { a: string, b: number } | ... What are Types? 7
Typing a variable 8
Typing a function 9
Typing an object 10
Nominal Typing 11 - C++, Java, Swift
Structural Typing 12 - OCaml, Haskell, Elm
Typing an array 13
Sum/Union Type 14
Intersection Type 15
- How to type a function that can be used
for any type of array (int[], string[], number[])? Generics 16
Generics 17
18 Optional type
- type the input - api body payload - headers
- query string Typing a REST API 19
- type the output (response) - Get a json output
of a REST api - Transform json to types - https://transform.now.sh/json-to-flo w-types/ Typing a REST API 20
Typing a REST api 21
Typing a REST api 22
Typing a React Component 23
Typing a React Component (TS) 24
Typing a React Component 25
Typing a HOC 26
Typing Redux 27
Typing Redux 28
Typing Redux 29
Flow Type Utilities 30
TypeScript Utilities Mapped Types 31
TypeScript Utilities Conditional Typing 32
Resources 33 - https://github.com/entria/guidelines/tree/ master/flow - https://flow.org/en/docs/lang/ - https://www.typescriptlang.org/docs/ho me.html
- https://github.com/fantasyland/fantasy-l and - https://github.com/gcanti/flow-static-land
Resources 34 - https://medium.com/javascript-scene/m aster-the-javascript-interview-what-is-fu nctional-programming-7f218c68b3a0 - https://medium.com/@matthiasak/state- of-the-union-js-d664bdbffd14 -
https://mitpress.mit.edu/books/types-an d-programming-languages - https://github.com/niieani/typescript-vs-fl owtype
Resources 35 - https://transform.now.sh/json-to-flow-typ es/
I didn't mention 36 - More about Type Theory -
Functional Programming - Types + Functional - Fantasy Land specs - Realworld problems and solutions
Sibelius