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 - road to static (typing) ojisan -
Search
dojineko
December 07, 2017
Technology
4
1.5k
TypeScript - road to static (typing) ojisan -
dojineko
December 07, 2017
Tweet
Share
More Decks by dojineko
See All by dojineko
iOSのWebViewとClipboardAPI / WebView and ClipboardAPI on iOS
dojineko
0
35
最近のUnityとVRChat / About Unity and VRChat recently
dojineko
0
120
WebXRでポートフォリオを作ろう/Let's make your portfolio with WebXR!
dojineko
0
150
ペパボ ホスティング事業部のWebフロントエンドについて 2022 / About Web Frontend of Pepabo Hosting division 2022
dojineko
0
8.8k
Viteはいいぞ/Vite is Good
dojineko
1
690
はじめてでもできた!VR登壇への道 / Let's VR speech!
dojineko
0
380
gRPC-WEBを使ったWEBアプリ開発/Development web-app with gRPC-WEB
dojineko
1
850
もう俺には関係なくないTypeScript/Our TypeScript
dojineko
3
320
TypeScript ではじめる Clean Architecture / Let's start Clean Architecture with TypeScript
dojineko
2
3.2k
Other Decks in Technology
See All in Technology
Oracle Cloud Infrastructure:2025年2月度サービス・アップデート
oracle4engineer
PRO
1
200
技術負債の「予兆検知」と「状況異変」のススメ / Technology Dept
i35_267
1
1.1k
次世代KYC活動報告 / 20250219-BizDay17-KYC-nextgen
oidfj
0
250
『衛星データ利用の方々にとって近いようで触れる機会のなさそうな小話 ~ 衛星搭載ソフトウェアと衛星運用ソフトウェア (実物) を動かしながらわいわいする編 ~』 @日本衛星データコミニティ勉強会
meltingrabbit
0
140
飲食店予約台帳を支えるインタラクティブ UI 設計と実装
siropaca
7
1.7k
リアルタイム分析データベースで実現する SQLベースのオブザーバビリティ
mikimatsumoto
0
1.3k
バックエンドエンジニアのためのフロントエンド入門 #devsumiC
panda_program
18
7.4k
室長と気ままに学ぶマイクロソフトのビジネスアプリケーションとビジネスプロセス
ryoheig0405
0
360
白金鉱業Meetup Vol.17_あるデータサイエンティストのデータマネジメントとの向き合い方
brainpadpr
5
720
ホワイトボードチャレンジ 説明&実行資料
ichimichi
0
130
データの品質が低いと何が困るのか
kzykmyzw
6
1.1k
SA Night #2 FinatextのSA思想/SA Night #2 Finatext session
satoshiimai
1
140
Featured
See All Featured
Why Our Code Smells
bkeepers
PRO
336
57k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
4
330
Visualization
eitanlees
146
15k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
133
33k
VelocityConf: Rendering Performance Case Studies
addyosmani
328
24k
How GitHub (no longer) Works
holman
314
140k
Site-Speed That Sticks
csswizardry
4
380
Reflections from 52 weeks, 52 projects
jeffersonlam
348
20k
The Power of CSS Pseudo Elements
geoffreycrofte
75
5.5k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
29k
Measuring & Analyzing Core Web Vitals
bluesmoon
6
240
KATA
mclloyd
29
14k
Transcript
dSPBEUPTUBUJD UZQJOH PKJTBOd !EPKJOFLP(.01FQBCP *OD 5FDI.5( 5ZQF4DSJQU
5ZQF4DSJQUͰ ੩తܕ͚͓͡͞ΜϥΠϑ
࣍ w5ZQF4DSJQUͱʁ w5ZQF4DSJQUͷίί͕ศར w5ZQF4DSJQUͷͭΒΈ ͱରԠࡦ wͪΐͬͱͣͭ࢝ΊΔ5ZQF4DSJQU
5ZQF4DSJQUͱʁ
5ZQF4DSJQU w.JDSPTPGUൃͷ੩తܕͷBMU+4 w+BWB4DSJQUͷεʔύʔηοτͰ͋Γɺ ͯ͢ͷ+BWB4DSJQU༗ޮͳ 5ZQF4DSJQUͱݴ͑Δ wίϯύΠϥͷػೳʹґΔίʔυิͳ ͲͷΤσΟλࢧԉͰָʹ։ൃ͕Ͱ͖Δ wIUUQTXXXUZQFTDSJQUMBOHPSH
ͳΜͰ5ZQF4DSJQU
ϚωʔδυΫϥυͰͷ࠾༻ཧ༝ w ϚωʔδυΫϥυϑϩϯταΠυ͔ΒαʔόʔαΠυ·ͰҰ؏ͯ͠ +BWB4DSJQUͰ࣮͞Ε͍ͯΔ w ։ൃ͕ਐΉʹ࿈Εͯ૿͍͑ͯ͘υΩϡϝϯτԽ͞Ε͍ͯͳ͍+BWB4DSJQU w +4%PD +BWB4DSJQUͷυΩϡϝϯτπʔϧ ະಋೖ
w 5ZQF4DSJQUͷಋೖ࣌ςετ͜Ε͔Βॻ͍͍ͯ͘ͱ͍͏ϑΣʔζ w ͦ͜Ͱ5ZQF4DSJQUʹΑΔɺ੩తܕ͚Λར༻ͨ͠ߏจղੳɺίʔυิͳͲͷ ΤσΟλࢧԉػೳΛ׆༻͢Δ w ʮίʔυΛಡΈղ͔ͳͯ͘ɺࠓ͔Β͡ΊΒΕΔ։ൃڥʯ͕ΰʔϧʂ
ϚωʔδυΫϥυͰͷ࠾༻ཧ༝ w5ZQF4DSJQU(PPHMFࣾͰར༻Մೳͳݴޠʹ࠾༻͞Εͨ w IUUQXXXQVCMJDLFZKQCMPHHPPHMFUZQFTDSJQUOHDPOG@IUNM w $$ ɺ+BWBɺ+BWB4DSJQUɺ1ZUIPOɺ(Pʹଓ͍ͯͷ࠾༻ w ͕͔ΓͰݕ౼ɾݕূΛͯ͠ͷ݁Ռͱͷ͜ͱ wνʔϜ։ൃʹԙ͍ͯɺܕʹΑΔ੍͕ίʔυͷ࣭ͷ୲อʹɺ
͋Δఔ༗ޮʹಇ͘ݟࠐΈ͕͋ͬͨ wίϯύΠϧޙͷίʔυਓ͕ಡΊΔΑ͏ͳܗʹͳ͍ͬͯΔ
ίʔυΛಡΈղ͔ͳͯ͘ ࠓ͔Β࢝ΊΒΕΔ։ൃڥ
ܕγεςϜ੩తղੳ ੩తղੳ ඇ࣮ߦ࣌ʹ͓͚ΔܕใΛ͍࣋ͬͯΔͷͰ ͋ΔఔςετΛॻ͔ͣͱίʔυΛ࣮ߦͤͣ ίϯύΠϧ࣌ʹϛεʹؾ͚ͮΔʂ ʜ͕ɺܕʹΑͬͯอূ͞ΕΔͷͰى͜Γʹ͍͘ʂ ؒҧͬͯίϯύΠϥ͕ࢦఠͯ͘͠ΕΔʂະવʹ͕ΕΔʂ w ͏͔ͬΓΛظ͢ΔมʹจࣈྻΛೖΕͨʜ w
͕ؔظ͍ͯ͠ͳ͍ҾΛͨ͠ʜ w ܕ͕֬ఆ͠ͳ͍ঢ়ଶͰࢀরͪ͠Ό࣮ͬͯߦ࣌ʹΤϥʔʜ
ίʔυิ ίʔυิ ίϯύΠϥʹΤσΟλࢧԉػೳ͕͍͓ͭͯΓ ରԠͨ͠ΤσΟλ֦ுػೳΛಋೖ͢Δͱ ܕใΛݩʹೖྗީิΛิͯ͘͠ΕΔʂ ʜ͕ɺυΩϡϝϯτΛݟͣͱ͔Δʂ ༻ํ๏·Ͱग़ͯ͘ΔʂλΠϓݮָͬͯͰ͖Δʂ w DMBTT9:;ͬͯԿͷϝιου͕͚͋ͬͨͬʜ w
͜ͷϝιουͬͯԿܕ͕ฦͬͯ͘ΔΜ͚ͩͬʜ w ͦͦԿͯͨ͠Μ͚ͩͬʜ
੩తܕ͚ɾಈతܕ͚ w੩తղੳίʔυิɺ*%&ɺ੩తܕ͖ݴޠͷίϯύΠϥ͔Β ͢ΔͱׂΓͱҰൠతͳػೳ ʹͳͬͨ w͔͠͠ͳ͕ΒզΒ͕+BWB4DSJQUಈతܕ͖ݴޠͳͷͰ࣮ߦ͢Δ· Ͱܕͷঢ়ଶ͕ෆఆɺ͘͠ਪ͢Δ͜ͱ͕͍͠ w5ZQF4DSJQUಈతܕ͖ݴޠͷ+BWB4DSJQUʹܕͷ֙Λணͤͯ੩త ܕ͚ͱͨ͠ݴޠ
5ZQF4DSJQUͷΠϝʔδ 5ZQF4DSJQU+BWB4DSJQUͷ֙ ੩తͳܕΛ༩͑Δͱڞʹɺ ศརͳث༩͑ͯ͘ΕΔɻ ੩తղੳɺίʔυิFUDʜ 5ZQF4DSJQU֙ͳͷͰ͋͘·Ͱ ࣮ߦ͞ΕΔͷ+BWB4DSJQU +4ͷ৺ΛΕͯΠέφΠɻ ݹࣄهʹͦ͏ॻ͔Ε͍ͯΔ
Generics Interface Abstract Class Async/Await Enum Namespace Decorator Promise ΄͔ʹ+4ʹແ͍
ศརͳػೳ͕ͨ͘͞Μʂ
ଟ͗ͯ͢આ໌͖͠Εͳ͍ͷͰࠓճলུʜ
5ZQF4DSJQU·ͱΊ w5ZQF4DSJQU+BWB4DSJQUΛ੩తܕ͚ͰهࡌͰ͖ΔBMU+4ͩΑ wΤσΟλࢧԉػೳ͋ͬͯͱͬͯศརʂ w੩తܕ͚ͳͷͰಈతܕ͖ݴޠʹ͋Γ͕ͪͳɺ ͜·͔ͳϛεେίϯύΠϥ͕ࣄલʹࢦఠͯ͘͠ΕΔΑ wଞʹ+BWB4DSJQUΛϕʔεʹศརͳػೳ͕ࢁ༻ҙ͞ΕͯΔΑ
5ZQF4DSJQUͷͭΒΈʜ ͱରԠࡦ
ྫܕఆ͕ٛͳ͍
5ZQF4DSJQUʹԙ͚ΔܕγεςϜ w5ZQF4DSJQU੩తܕ͚Ͱͳ͍+BWB4DSJQUʹܕΛ࣋ͪࠐΉΈ w༧Ί͍͍ͨ֎෦ϥΠϒϥϦͷܕఆٛ͞Ε͍ͯΔඞཁ͕͋Δ wK2VFSZ 3FBDU "OHVMBS 7VFKT /PEFͷίΞϥΠϒϥϦ FUDʜ wϝδϟʔͳͷ%FpOJFUMZ5ZQFEͰܕఆ͕ٛఏڙ͞Ε͍ͯΔ
wϥΠϒϥϦ͕ࣗܕఆٛใΛ͍࣋ͬͯΔ߹ w5ZQF4DSJQU+4%PD͔ΒܕใΛऔΕΔ
OQNͰܕఆٛϑΝΠϧΛ औಘͯ͑͠Δʂ Λ͑Δ ϥΠϒϥϦͷܕఆٛΛऩ ༗ࢤ͕όϯόϯߋ৽ͯ͘͠ΕΔ
Ͱɺܕఆ͕ٛ୭ʹఏڙ͞Εͯͳ͍ϥΠϒϥϦΛ͏γʔϯͰʜʁ
͠ܕఆ͕ٛͳ͔ͬͨΒʁ wʲύλʔϯʳܕఆٛΛॻ͘ʂ wܕఆٛಠࣗͰॻ͘͜ͱͰ͖ΔͷͰͬ͘͞Γॻ͍ͯ͠·͏ύλʔϯ wOQNͰެ։͞ΕͯΔͷͷܕఆٛΛॻ͍ͨΒ%FpOJFUMZ5ZQFEʹ ϓϧϦΫΤετΛૹΔͱྑ͍ ͪΖΜૹΒͳͯ͘0,
ܕఆٛͷແ͍ϥΠϒϥϦͷྫ w จࣈྻΛCPPMFBOʹม͢ΔZOͱ͍͏ύοέʔδ w ڥม TUSJOH ͔ΒCPPMFBOʹม͍ͨ͠ʂ w ͔͠͠ͳ͕Β͜Εʹܕఆ͕ٛఏڙ͞Ε͍ͯͳ͍ w
%FpOJFUMZ5ZQFEʹܕఆ͕ٛͳ͍ w +4%PD͍ͭͯͳ͍ ΞϨ͑ͨʜ w ܕఆ͕ٛͳ͍ͷͰ5ZQF4DSJQU্Ͱ ม݁ՌΛCPPMFBOͱͯ͠ड͚औΕͳ͍ʜ w શ෦BOZܕʹͳΔʜ͔ͳ$
ܕఆٛΛॻ͜͏ʂ
ܕఆٛΛॻ͘Αʂ w ͜ΕͰ5ZQF4DSJQUͰܕΛ࣋ͬͨঢ়ଶͰZOΛ͏͜ͱ͕Ͱ͖Δ w ܕఆٛύοέʔδͷͯ͢ͷ࣮Λཏ͢Δඞཁͳ͍ lZOzͱ͍͏໊લͷϞδϡʔϧ͕͋Δ͜ͱΛ ఆٛ͢Δ Ϟδϡʔϧ㲈OQNQBDLBHF ZOͱ͍͏͕ؔ͋ͬͯɺҾΛͭऔΓɺ ΓCPPMFBOͰฦͬͯ͘Δ͜ͱΛ
ఆٛ͢ΔɻΈͰ+4%PD͚ΒΕΔɻ ZO͕FYQPSU͞Ε͍ͯΔ͜ͱΛఆٛ͢Δ JNQPSUͨ࣌͜͠ͷؔΛ͑Δͱ͍͏ఆٛ
ܕఆٛΛॻ͍ͨΑʂ ఆٛͨ͠Ҿͱܕͷใ͕ิ͞ΕΔ Ҿͷܕͱ߹Θͳ͍߹ Τϥʔͱͯ͠ݕ͞ΕΔΑ͏ʹͳΔ
͠ܕఆ͕ٛͳ͔ͬͨΒʁ wʲύλʔϯʳBOZܕͰಀ͛Δʂ wBOZܕͰ͍͔ͳΔܕڐ༰ͯͦ͠ͷ෦͚ͩΛᛉΔύλʔϯ w͕࣌ؒͳ͍߹ɺܕఆٛΛॻ͘͜ͱʹਫ਼௨ͯ͠ͳ͍߹༗ޮ
BOZܕͰಀ͛Δύλʔϯ ܕ໊ ྫ 4USJOH จࣈྻܕ l)FMMPXPSMEz /VNCFS ܕ #PPMFBO
ೋܕ USVF GBMTF "SSBZ5 ྻܕ <lBz lCz lDz>"SSBZTUSJOH /VMM OVMMܕ OVMM "OZ BOZܕ ҙͷܕΛڐ༰͢Δܕ w 5ZQF4DSJQUʹԼهͷΑ͏ͳܕ͕͋Δ Ұ෦ൈਮ
BOZܕͰಀ͛Δύλʔϯ ܕ໊ ྫ 4USJOH จࣈྻܕ l)FMMPXPSMEz /VNCFS ܕ #PPMFBO
ೋܕ USVF GBMTF "SSBZ5 ྻܕ <lBz lCz lDz>"SSBZTUSJOH /VMM OVMMܕ OVMM "OZ BOZܕ ҙͷܕΛڐ༰͢Δܕ w 5ZQF4DSJQUʹԼهͷΑ͏ͳܕ͕͋Δ Ұ෦ൈਮ
BOZܕͰಀ͛Δύλʔϯ w BOZܕจࣈ௨ΓͳΜͰ͋Γͷܕ จࣈྻͰɺͰɺVOEFpOFEͰ w $$ ͷWPJE (PͷJOUFSGBDF\^ʹ͍ۙ֓೦ w
ܕఆٛͷແ͍ϥΠϒϥϦ·Δ͝ͱBOZܕͱ͢ΕίϯύΠϧΛ௨͢͜ͱ͕Ͱ͖Δ w BOZܕʹͳͬͨͷܕͷ੍Λ֎ΕΔ w ܕͷ੍Λ֎ΕΔͷͰίϯύΠϥʹࢧԉͯ͠Β͑ͳ͘ͳΔ w ۭ͍ͨ࣌ؒͰ͏ൣғ͚ͩͰܕఆٛΛॻ͘ͷ͕͓͢͢Ίʂ
ͪΐͬͱͣͭ͡ΊΔ 5ZQF4DSJQU
Ͳ͏ͬͯಋೖ͢Δ͔ʁ w5ZQF4DSJQU͕ྑ͍ͷΘ͔͚ͬͨͲͲ͏ͬͯಋೖ͢Δͷʁ w ͢ͰʹK2VFSZͰॻ͍ͨίʔυ͕ͨͬΓ͋ΔΜ͚ͩͲʜ w શ෦5ZQF4DSJQUʹ͠ͳ͍ͱͩΊͳΜͰ͠ΐʁ w#BCFM͑ͳ͍ͷʁ w 1SPNJTFͱ͔BTZODBXBJU w
ڧྗͳ#BCFMϓϥάΠϯ ܕͱ͔Ͳ͏Ͱ͍͍͔Β ࣮ͤͯ͞ʜ
طଘͷίʔυʹগͮͭ͠ೖΕ͍ͯ͘ w5ZQF4DSJQU+BWB4DSJQUͷʮεʔύʔηοτʯ wཧΤϥʔΛؚ·ͳ͍ݶΓɺ֦ுࢠΛม͑Δ͚ͩͰίϯύΠϧͰ͖Δ w%FpOJFUMZ5ZQFEͰެ։͞Ε͍ͯΔܕఆٛͬͯɺ ঃʑʹॻ͍͍ͯ͘ͷ͕खܰͰखݎ͍ w ٧·ͬͨΒʮͱΓ͋͑ͣBOZܕΛͬͯΈΔʯͱ͍͏ΓํΞϦ w5ZQF4DSJQU͔Β+BWB4DSJQUΛJNQPSUͯ͠͏͜ͱͰ͖Δ w5ZQF4DSJQUΛͱΓ͋͑ͣೖΕͯΈΔ͚ͩͳΒ͙͢ʹͰ͖Δʂ
+4͔Β54ͷҠߦྫ w ΄ͱΜͲॻ͖͑ͣʹҠߦ͢Δ͜ͱ͕Ͱ͖ͨ Ұ෦ྫ֎͋Γ w Ҡߦͷ్தͰEPDVNFOUHFU&MFNFOU#Z*Eͷ݁Ռ͕OVMMʹͳΓ͏Δͱ͍͏ ߟྀ͕ൈ͚͍ͯΔ͜ͱΛݕͨ͠ͷͰमਖ਼ͨ͠ Γ͕)5.-&MFNFOUPSOVMMͷͨΊͦͷ··ͩͱίϯύΠϧΤϥʔʹͳΔ
#BCFMͲ͏͢Δʁ w5ZQF4DSJQUͰ࣮ߦڥΛࢦఆͯ͠ίϯύΠϧ͢Δ͜ͱ͕Ͱ͖Δ w &4&4ɺ&4/FYU&4ͳͲະདྷͷػೳΛݱࡏʹ࣋ͪࠐΊΔ w 1SPNJTFɺ"TZOD"XBJUͳͲͷओཁͳػೳΛτϥϯεύΠϧ͢ΔͨΊʹ #BCFMΛಋೖ͍ͯ͠ΔͳΒ5ZQF4DSJQU#BCFMͷ্ҐޓͱͳΓಘΔ w "TZOD"XBJUͷ&4ͷίϯύΠϧ5ZQF4DSJQUͰରԠࡁΈ w
ͦͷଞͷ࣍ੈͷ&$."4DSJQUͷҰ෦ઌߦ࣮ͷαϙʔτ͞Ε͍ͯΔ ˞#BCFMʜ+4ͷະདྷͷػೳΛݱࡏ͋ΔػೳͰ࠶ݱ͢ΔͨΊͷπʔϧ ˞&$."4DSJQUʜ+BWB4DSJQUͷඪ४༷ɻίίͰʮ͍ΘΏΔ+4ͷ͜ͱʯ͘Β͍ͷೝࣝͰ0,
#BCFMͲ͏͢Δʁ w#BCFM1PMZpMMͷΑ͏ͳ࣮ߦڥͷࠩΛຒΊΔػೳଘࡏ͠ͳ͍ w ͔͠͠ͳ͕Β#BCFMͱͷซ༻ࣗମՄೳ w ซ༻͢Δͱ5ZQF4DSJQUͷίϯύΠϧͱ#BCFMͷτϥϯεύΠϧͰ ഒ͕͔͔࣌ؒΔͷͰ͓͢͢Ί͠ͳ͍ w Ͳ͏ͯ͠ඞཁͳΒ#BCFM1PMZpMMΛผ్ಡΈࠐΜͰซ༻͢Δͷ͕ྑͦ͞͏ wݴޠػೳΛେ͖͘ม͑ΔΑ͏ͳ#BCFMϓϥάΠϯͷΑ͏ͳػೳແ͍
w &$."4DSJQUඪ४ͷ"1*͕ॆ࣮͖͍ͯͯ͠ΔͷͰΓସ͑Λݕ౼͢ΔͳͲ
ͪΐͬͱͣͭ͡ΊΔ54·ͱΊ w5ZQF4DSJQUͷҠߦͦΜͳʹ͍͜͠ͱͰͳ͍Α w +BWB4DSJQUͷεʔύʔηοτͳͷͰߏจ্ҐޓʹͳΔ w ͨ͘͞ΜͷܕఆٛϑΝΠϧ͕ఏڙ͞Ε͍ͯΔ w Ҡߦͯ͠Δ్தͰؾ͖͕ͮ͋Δ͔ʁ w#BCFMΛߴʹ༻͍ͯ͠Δͱ͖ҙͯ͠Ͷ w
Ұ෦ͷ৽͍͠ػೳΛ͍͍͚ͨͩͳΒ#BCFMෆཁ͔ʁ
ͱ͍͏Θ͚Ͱʜ
ܕγεςϜͰखݎ͍։ൃ ͡ΊͯΈ·ͤΜ͔ʁ
ܕ͍͍ͧ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠