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
そのJavascript、全部TypeScriptにしちゃえ
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Taro Matsuzawa aka. btm
October 23, 2021
Technology
260
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
そのJavascript、全部TypeScriptにしちゃえ
Open Source Conference 2021 Online/Fall LT
Taro Matsuzawa aka. btm
October 23, 2021
More Decks by Taro Matsuzawa aka. btm
See All by Taro Matsuzawa aka. btm
OpenLayers ext TypeScript declarationの開発
smellman
0
640
平成生まれのためのUNIX&IT歴 史講座 ~番外編~
smellman
2
580
掛川城の点群データをiTownsで表示しよう
smellman
0
360
大容量SSDとOpenStreetMap
smellman
0
180
MapLibreとtile.openstretmap.jpで始めるベクトル地図プログラミング
smellman
1
660
国内向けタイルサーバの構築と運用について
smellman
0
1.8k
Python/Javascriptで読む点群
smellman
1
5.4k
日本のCommunity向け タイルサーバの現状
smellman
0
2.7k
Pythonで点群を読んでみよう
smellman
1
2.9k
Other Decks in Technology
See All in Technology
自宅LLMの話
jacopen
1
660
ロボティクスの技術 / Robotics Technology
ks91
PRO
0
110
不要なレビューをAIにまかせて AIコーディングの環境改善を加速した
shoota
1
230
Kiroで書いた 設計書 が AI レビューの 採点基準 になる
ezaki
0
130
Kubernetesにおける学習基盤とLLMOpsの概要
ry
1
320
Chainlitで作るお手軽チャットUI
ynt0485
0
280
iOS アプリの「これって不具合ですか?」を AI に調べてもらう
miichan
0
100
失敗を資産に変えるClaude Code
shinyasaita
0
720
Bucharest Tech Week 2026 - Guardians of the Cloud-Native Galaxy
edeandrea
PRO
0
120
スタートアップにAmazon EKSは早すぎる? マルチプロダクト戦略を加速する Platform Engineeringの実践 / Is Amazon EKS Too Soon for Startups? Practical Platform Engineering to Accelerate a Multi-Product Strategy
elmodev09
0
380
エラーバジェットのアラートのタイミングを考える.pdf
kairim0
0
170
人材育成分科会.pdf
_awache
4
300
Featured
See All Featured
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
GraphQLとの向き合い方2022年版
quramy
50
15k
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.3k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.5k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
200
AI: The stuff that nobody shows you
jnunemaker
PRO
8
720
Designing for Timeless Needs
cassininazir
1
260
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
170
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
160
Information Architects: The Missing Link in Design Systems
soysaucechin
0
970
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.9k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.2k
Transcript
ͦͷJavascriptɺ શ෦TypeScriptʹͪ͠Ό͑ Taro Matsuzawa(@smellman)
ࣗݾհ ཧۭؒܥΤϯδχΞ ຊUNIXϢʔβձձ/Ұൠࣾஂ๏ਓOSGeoຊࢧ෦ཧࣄ/Ұൠࣾஂ๏ਓΦʔ ϓϯετϦʔτϚοϓϑΝϯσʔγϣϯδϟύϯϝϯόʔ ౦ژిػେֶOB/౦ژిػେֶCySecݱੜ breakcoreΫϥελ ͱݺΕͯ·͢
ʢୀࡁΈʣ
OSSͷ׆ಈ React NativeܥϥΠϒϥϦͷվम react-native-static-server (iOSରԠ), redux-persist (ϥΠϒϥϦΛ·Δ͝ͱ TypeScriptʹॻ͖͑Δ) ͳͲ OpenMapTilesϓϩδΣΫτͷߩݙɺཧؔ։ൃ༁
ckanext-spatial (Python3ରԠ) ͳͲ ͦͷଞɺؾ͕͘··ίʔυυΩϡϝϯτΛॻ͍ͯ·͢
redux-persist ReactͰΑ͘ΘΕΔঢ়ଶͷอ࣋Λ͢Δreduxʹؔ͢ΔϥΠϒϥϦ redux-persistΛ͏ͱঢ়ଶΛLocalStorage(Web)/AsyncStorage(React Native)ͳͲʹอ࣋ͯ͘͠ΕΔ εϚϗΞϓϦͰঢ়ଶΛอଘ͢ΔͷʹศརͳϥΠϒϥϦ
ಋೖΛݕ౼ͨ݁͠Ռ ϝϯςφϯε͕2͙Β͍์ஔ ϝϯςφʔ͕ډͳ͍ͱ͍͏issue͕์ஔ͞Ε͍ͯΔ Pull RequestԿ͔์ஔ ͳΜͱ͔͍ͨ͠
ιʔείʔυΛಡΜͰΈΔ οɺFlowͬͯΔ…
Flow FLOW IS A STATIC TYPE CHECKER FOR JAVASCRIPT Facebook͕࡞ͬͨJavascriptͷ੩తܕνΣοΧʔ
Javascriptʹແཧཧܕͷ֓೦ΛೖΕΔ ΊͬͪΌಡΈͮΒ͍ʼʻ
ܕೖΕΔͳΒ ͏TypeScriptͰ͍͍͡ΌΜʂ
͍͍͡ΌΜ Flow͕·͡ϝϯςφϯεͷํ͕Θ͔ΒΜ VSCode͕Flowͷόʔδϣϯ͕ҧ͏ͱΤϥʔΛు͖·͘Δ ͦ͜·ͰͪΌΜͱܕ͚͕͞Ε͍ͯΔΘ͚Ͱͳ͍ ໌ࣔతʹanyͬͯॻ͖͍ͨ͡ΌΜ͔͢
ͱ͍͏Θ͚Ͱ
ͬͨ͜ͱ શ෦TypeScriptԽɺFlowΛ໓ Travis CI͔ΒGithub Actions Eslint, rollup, ͦͷଞΖΖશ෦ॻ͖͠
ͱ͍͑ Ϛʔδ͞ΕΔ·Ͱϲ݄͔͔ͬͨ ཧ༝؆୯ɺϝϯςφʔ͕ั·Βͳ͔ͬͨ ઌɺϝϯςφʔͱίϯλΫτΛऔͬͯมΘΓͷϝϯςφʔ͕ग़ ݱͯͬ͠ͱίϝϯτ
ײँ
–ckalika “͜Μʹͪɺ͋ͳͨͷϓϧϦΫΤετʹΛ௨͢ͷʹ͕͔͔࣌ؒͬͯ͠·͍ɺਃ͠༁͋Γ·ͤΜͰͨ͠ɻࠓɺ ѱҙͷ͋Δͷҙຯͷͳ͍ͷؚ͕·Ε͍ͯͳ͍͔֬ೝͨ͠ͱ͜ΖͰ͕͢ɺ͜Ε...ɻຊʹײಈ͠·͠ ͨɻcreateAsyncLocalStorage()ʹkeysྻΛՃͯ͠Ұ؏ੑΛ࣋ͨͤΔͳͲɺࡉ෦ʹ·ͰؾΛͬͨ ྗʹײँ͠·͢ɻ ࠓͷͱ͜Ζςετ͋·Γ͍ͯ͠ͳ͍ͷͰɺ༧֎ͷ݁ՌʹͳΔՄೳੑ͋Γ·͢ɻͦ͠͏ͳͬͨΒɺέʔ εόΠέʔεͰରॲ͠·͕͢ɺࢲؒҧ͍ͳ͋͘ͳͨͷมߋηοτΛਐΊΔ͖ͩͱࢥ͍·͢ɻࡉ͔͍मਖ਼ ʢύοέʔδͷόʔδϣϯɺREADME.mdͷߋ৽ͳͲʣΛՃ͍͑ͨͱࢥ͍·͕͢ɺͦΕΒ͕Ͱ͖ͨΒɺتΜ ͰϚʔδ͠·͢ɻ TypeScriptͷҠߦͱΠϯϑϥͷۙԽɺඇৗʹॏཁͰҙٛਂ͍ࣄۀͰ͢ɻ͜ΕʹΑΓɺΑΓҰ؏ੑͷ͋
ΔɺΑΓଟ͘ͷςετΛߦ͏͜ͱ͕Ͱ͖ΔΑ͏ʹͳΓ·͢ͷͰɺվΊͯײँ͍ͨ͠·͢ɻ”
ۤ࿑ใΘΕΔ TypeScriptԽʹΑͬͯΑΓςετ͘͢͠ͳͬͨ શମతͳݟ௨͠ fl owͰத్ʹܕΛ͚ͭΔΑΓΘ͔Γ͘͢ ͳͬͨ(ओ؍ ͜ΕͰͬͱଞͷਓϝϯςφϯεʹՃΘΕΔΑ͏ʹͳͬͨ ͜͜ॏཁͰ͢Αʂ
·ͱΊ JavascriptͰॻ͔Ε͍ͯΔͷTypeScriptԽͨ͠ํ͕ྑ͍ྫ͋Δ ༐ؾΛͩͯ͠Pull RequestΛग़͢ͷ͕ॏཁ
͝੩ௌ͋͟·Δਫ࢈