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
TypeScript vs Flow
Search
Craig Bruce
November 26, 2015
Technology
670
1
Share
TypeScript vs Flow
An overview of 2 of the most popular type checking tools in the JavaScript ecosystem
Craig Bruce
November 26, 2015
Other Decks in Technology
See All in Technology
Rapid Start: Faster Internet Connections, with Ruby's Help
kazuho
2
130
ぼくがかんがえたさいきょうのあうとぷっと
yama3133
0
170
名刺メーカーDevグループ 紹介資料
sansan33
PRO
0
1.1k
AI時代における技術的負債への取り組み
codenote
0
990
昔はシンプルだった_AmazonS3
kawaji_scratch
0
300
CDK Insightsで見る、AIによるCDKコード静的解析(+AI解析)
k_adachi_01
2
170
インターネットの技術 / Internet technology
ks91
PRO
0
150
#jawsugyokohama 100 LT11, "My AWS Journey 2011-2026 - kwntravel"
shinichirokawano
0
310
自分のハンドルは自分で握れ! ― 自分のケイパビリティを増やし、メンバーのケイパビリティ獲得を支援する ― / Take the wheel yourself
takaking22
1
800
Azure PortalなどにみるWebアクセシビリティ
tomokusaba
0
370
AI時代にデータ基盤が持つべきCapabilityを考える + Snowflake Data Superheroやっていき宣言 / Considering the Capabilities Data Platforms Should Have in the AI Era + Declaration of Commitment as a Snowflake Data Superhero
civitaspo
0
110
Data Hubグループ 紹介資料
sansan33
PRO
0
2.9k
Featured
See All Featured
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
5.6k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
110
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
120
HDC tutorial
michielstock
2
620
WENDY [Excerpt]
tessaabrams
10
37k
30 Presentation Tips
portentint
PRO
1
270
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Between Models and Reality
mayunak
3
260
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
69
38k
Balancing Empowerment & Direction
lara
6
1k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2k
Transcript
TYPE CHECKING TypeScript vs Flow
JAVASCRIPT TOOLING IS NOT NEW
MINIFICATION
STATIC ANALYSIS
LINTERS
TRANSPILERS (COFFEES#!T)
THE BLURB
TYPESCRIPT “A TYPED SUPERSET OF JAVASCRIPT THAT COMPILES TO PLAIN
JAVASCRIPT”
FLOW “ADDS STATIC TYPING TO JAVASCRIPT TO IMPROVE DEVELOPER PRODUCTIVITY
AND CODE QUALITY”
BOTH HAVE SAME GOALS
BACKGROUND - FLOW
FACEBOOK CREATED REACT
CODE BASE & TEAM GETTING LARGE - BUGS CREEPING IN
LOOKED AT CLOSURE COMPILER BUT REQUIRED “TOO MUCH CARE”
LOOKED AT TYPESCRIPT BUT REQUIRED “DEVS TO DO JS DIFFERENTLY”
WRITTEN IN OCAML
BACKGROUND-TYPESCRIPT
MICROSOFT WANTED TO ADDRESS JAVASCRIPT’S SHORTCOMINGS FOR LARGE PROJECTS
THEY ALSO WANTED TO BRING FUTURE ES6/7 PROPOSALS FORWARD
AND GIVE JAVASCRIPT FIRST CLASS TOOLING SUPPORT FOR EDITORS
STRONG UPTAKE - EVEN ANGULAR 2.0 IS WRITTEN IN TYPESCRIPT
google —microsoft
WHY DO WE CARE?
TYPES CAN BE YOUR FRIEND
TYPES CAN SERVE AS DOCUMENTATION FOR FUNCTIONS
THE COMPILER IS YOUR FIRST UNIT TEST
TOOLING CAN AID PRODUCTIVITY
NOT EVERYONE AGREES
“ I think that JavaScript's loose typing is one of
its best features and that type checking is way overrated. TypeScript adds sweetness, but at a price. It is not a price I am willing to pay -Douglas Crockford
“ A word of warning Making previously-untyped code typecheck with
Flow may take some time and work - and sometimes it may not be worth the effort in the short term -facebook
None
YOU CAN STILL DO DYNAMIC JAVASCRIPT don’t panic
SYNTAX
TYPE ANNOTATIONS
TYPE ANNOTATIONS
None
ARRAYS
None
ENUMS
None
INTERFACES
INTERFACES
INTERFACES
INTERFACES
UNION TYPES
UNION TYPES
GENERICS
`
`
WORKING WITH 3RD PARTY LIBRARIES
TYPESCRIPT - .D.TS FILES FLOW - ‘INTERFACE’ FILES
None
None
ALTERNATIVELY
HTTP://DEFINITELYTYPED.ORG/
REACT
TYPESCRIPT - .TSX FILES FLOW - OOTB
None
None
TOOLING
TYPESCRIPT HAS RICH EDITOR SUPPORT
FLOW HAS LIMITED SUPPORT - ATOM NUCLIDE
THE FUTURE
TYPESCRIPT - ASYNC/AWAIT AND LOTS OF ES2016 FEATURES https://github.com/Microsoft/TypeScript/wiki/roadmap
FLOW - CONVERT TYPESCRIPT .D.TS BETTER IDE SUPPORT MOVE FROM
OCAML TO JS http://flowtype.org/docs/coming-soon.html#_
ALTERNATIVES
ELM PURESCRIPT http://elm-lang.org/ http://www.purescript.org/