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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
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
38
As Dores de uma Fintech
sibelius
1
300
Woovi - Safe Coding Practices
sibelius
1
78
⛔ No Cloud: how Woovi moved from the Cloud to its own servers
sibelius
1
730
React Colocation
sibelius
2
310
The Frontend Dichotomy
sibelius
5
730
React Native Bridges Architectures
sibelius
2
1.3k
What's next?
sibelius
3
640
ReactConfBR - Is Relay Modern the Future?
sibelius
3
940
Other Decks in Technology
See All in Technology
Phase01_AI座学_基礎
overflowinc
0
4.2k
QA組織のAI戦略とAIテスト設計システムAITASの実践
sansantech
PRO
1
170
イベントで大活躍する電子ペーパー名札を作る(その2) 〜 M5PaperとM5PaperS3 〜 / IoTLT @ JLCPCB オープンハードカンファレンス
you
PRO
0
210
FastMCP OAuth Proxy with Cognito
hironobuiga
3
210
SSoT(Single Source of Truth)で「壊して再生」する設計
kawauso
2
360
「通るまでRe-run」から卒業!落ちないテストを書く勘所
asumikam
2
750
非同期・イベント駆動処理の分散トレーシングの繋げ方
ichikawaken
1
130
夢の無限スパゲッティ製造機 #phperkaigi
o0h
PRO
0
370
FlutterでPiP再生を実装した話
s9a17
0
200
CloudFrontのHost Header転送設定でパケットの中身はどう変わるのか?
nagisa53
1
190
AI時代のオンプレ-クラウドキャリアチェンジ考
yuu0w0yuu
0
240
How to install a gem
indirect
0
1.7k
Featured
See All Featured
The Curious Case for Waylosing
cassininazir
0
280
Building Adaptive Systems
keathley
44
3k
Crafting Experiences
bethany
1
94
Raft: Consensus for Rubyists
vanstee
141
7.4k
Claude Code のすすめ
schroneko
67
220k
Designing for humans not robots
tammielis
254
26k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
1
3.5k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
AI: The stuff that nobody shows you
jnunemaker
PRO
3
480
Building Applications with DynamoDB
mza
96
7k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
150
How to build a perfect <img>
jonoalderson
1
5.3k
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