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
44
最近のUnityとVRChat / About Unity and VRChat recently
dojineko
0
130
WebXRでポートフォリオを作ろう/Let's make your portfolio with WebXR!
dojineko
0
150
ペパボ ホスティング事業部のWebフロントエンドについて 2022 / About Web Frontend of Pepabo Hosting division 2022
dojineko
1
9k
Viteはいいぞ/Vite is Good
dojineko
1
720
はじめてでもできた!VR登壇への道 / Let's VR speech!
dojineko
0
400
gRPC-WEBを使ったWEBアプリ開発/Development web-app with gRPC-WEB
dojineko
1
890
もう俺には関係なくないTypeScript/Our TypeScript
dojineko
3
340
TypeScript ではじめる Clean Architecture / Let's start Clean Architecture with TypeScript
dojineko
2
3.2k
Other Decks in Technology
See All in Technology
Cursor AgentによるパーソナルAIアシスタント育成入門―業務のプロンプト化・MCPの活用
os1ma
9
3.2k
LangfuseでAIエージェントの 可観測性を高めよう!/Enhancing AI Agent Observability with Langfuse!
jnymyk
0
170
7,000名規模の 人材サービス企業における プロダクト戦略・戦術と課題 / Product strategy, tactics and challenges for a 7,000-employee staffing company
techtekt
0
260
TopAppBar Composableをカスタムする
hunachi
0
180
Classmethod AI Talks(CATs) #21 司会進行スライド(2025.04.17) / classmethod-ai-talks-aka-cats_moderator-slides_vol21_2025-04-17
shinyaa31
0
460
バックオフィス向け toB SaaS バクラクにおけるレコメンド技術活用 / recommender-systems-in-layerx-bakuraku
yuya4
2
300
SDカードフォレンジック
su3158
0
360
Стильный код: натуральный поиск редких атрибутов по картинке. Юлия Антохина, Data Scientist, Lamoda Tech
lamodatech
0
430
Рекомендации с нуля: как мы в Lamoda превратили главную страницу в ключевую точку входа для персонализированного шоппинга. Данил Комаров, Data Scientist, Lamoda Tech
lamodatech
0
430
技術者はかっこいいものだ!!~キルラキルから学んだエンジニアの生き方~
masakiokuda
2
140
入社後SREチームのミッションや課題の整理をした話
morix1500
1
250
やさしいMCP入門
minorun365
PRO
148
96k
Featured
See All Featured
How to Ace a Technical Interview
jacobian
276
23k
A designer walks into a library…
pauljervisheath
205
24k
StorybookのUI Testing Handbookを読んだ
zakiyama
29
5.6k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
30
2.3k
Typedesign – Prime Four
hannesfritz
41
2.6k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
26k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
45
9.5k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Into the Great Unknown - MozCon
thekraken
37
1.7k
Unsuck your backbone
ammeep
670
57k
Speed Design
sergeychernyshev
29
880
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.4k
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ෆཁ͔ʁ
ͱ͍͏Θ͚Ͱʜ
ܕγεςϜͰखݎ͍։ൃ ͡ΊͯΈ·ͤΜ͔ʁ
ܕ͍͍ͧ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠