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
1
660
TypeScript vs Flow
An overview of 2 of the most popular type checking tools in the JavaScript ecosystem
Craig Bruce
November 26, 2015
Tweet
Share
Other Decks in Technology
See All in Technology
OpenID BizDay#17 KYC WG活動報告(法人) / 20250219-BizDay17-KYC-legalidentity
oidfj
0
140
開発組織のための セキュアコーディング研修の始め方
flatt_security
3
1.4k
室長と気ままに学ぶマイクロソフトのビジネスアプリケーションとビジネスプロセス
ryoheig0405
0
350
なぜ私は自分が使わないサービスを作るのか? / Why would I create a service that I would not use?
aiandrox
0
510
Building Products in the LLM Era
ymatsuwitter
10
5k
Swiftの “private” を テストする / Testing Swift "private"
yutailang0119
0
120
TAMとre:Capセキュリティ編 〜拡張脅威検出デモを添えて〜
fujiihda
1
180
2024.02.19 W&B AIエージェントLT会 / AIエージェントが業務を代行するための計画と実行 / Algomatic 宮脇
smiyawaki0820
10
1.6k
地方拠点で エンジニアリングマネージャーってできるの? 〜地方という制約を楽しむオーナーシップとコミュニティ作り〜
1coin
1
220
トラシューアニマルになろう ~開発者だからこそできる、安定したサービス作りの秘訣~
jacopen
2
1.8k
滅・サービスクラス🔥 / Destruction Service Class
sinsoku
6
1.6k
Nekko Cloud、 これまでとこれから ~学生サークルが作る、 小さなクラウド
logica0419
2
880
Featured
See All Featured
Measuring & Analyzing Core Web Vitals
bluesmoon
6
240
The Power of CSS Pseudo Elements
geoffreycrofte
75
5.5k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
30
4.6k
Large-scale JavaScript Application Architecture
addyosmani
510
110k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
7.1k
Embracing the Ebb and Flow
colly
84
4.6k
Six Lessons from altMBA
skipperchong
27
3.6k
VelocityConf: Rendering Performance Case Studies
addyosmani
328
24k
Navigating Team Friction
lara
183
15k
The Invisible Side of Design
smashingmag
299
50k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
160
15k
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/