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は10年でこんなに進化しました / TechFeed Experts Ni...
Search
OKUNOKENTARO
January 18, 2023
Technology
6
1.7k
TypeScriptは10年でこんなに進化しました / TechFeed Experts Night 11
2023/1/18に発表した資料です。
OKUNOKENTARO
January 18, 2023
Tweet
Share
More Decks by OKUNOKENTARO
See All by OKUNOKENTARO
トレタO/X アーキテクチャ移行記 Next.js App Router化への道のり / TORETA TECH UPDATE 1
okunokentaro
5
11k
Podcastを継続する技術 / refactoradio-240119
okunokentaro
1
180
Webアプリケーション設計の第一歩は ディレクトリの整理から / Encraft 1
okunokentaro
34
10k
JSONとJSON Schemaを改めて理解する / tokyo_study
okunokentaro
9
2.3k
それでもどうしてRecoilを使うのか / Harajuku.ts Meetup Recoil
okunokentaro
19
5.5k
Hasura.io RDBをサクサク作る方法はARやO/RMだけじゃなくなりました/hasura-io
okunokentaro
5
660
コードには型アノテーションよりも要件アノテーションを増やせ!/harajukuts2
okunokentaro
14
6.3k
10年と3ヶ月でWebサービスを作った話 / Piyogrammer Conference 2021
okunokentaro
2
1k
any禁止 絶対に型付けを諦めないための便利なユーティリティ関数 / techstand6
okunokentaro
21
6.6k
Other Decks in Technology
See All in Technology
アジャイル脅威モデリング#1(脅威モデリングナイト#8)
masakane55
3
230
Goの組織でバックエンドTypeScriptを採用してどうだったか / How was adopting backend TypeScript in a Golang company
kaminashi
12
8.6k
SmartHR プロダクトエンジニア求人ガイド_2025 / PdE job guide 2025
smarthr
0
180
Bazel for Ruby (RubyKaigi 2025)
p0deje
0
120
LiteXとオレオレCPUで作る自作SoC奮闘記
msyksphinz
0
790
Cursor AgentによるパーソナルAIアシスタント育成入門―業務のプロンプト化・MCPの活用
os1ma
15
5.8k
30代からでも遅くない! 内製開発の世界に飛び込み、最前線で戦うLLMアプリ開発エンジニアになろう
minorun365
PRO
15
4.5k
勝手に!深堀り!Cloud Run worker pools / Deep dive Cloud Run worker pools
iselegant
4
510
ガバクラのAWS長期継続割引 ~次の4/1に慌てないために~
hamijay_cloud
1
450
コードや知識を組み込む / Incorporating Codes and Knowledge
ks91
PRO
0
120
Dynamic Reteaming And Self Organization
miholovesq
3
650
Mastraに入門してみた ~AWS CDKを添えて~
tsukuboshi
0
330
Featured
See All Featured
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
23
2.7k
How to Ace a Technical Interview
jacobian
276
23k
What's in a price? How to price your products and services
michaelherold
245
12k
Art, The Web, and Tiny UX
lynnandtonic
298
20k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
357
30k
BBQ
matthewcrist
88
9.6k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
45
7.2k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
104
19k
RailsConf 2023
tenderlove
30
1.1k
Gamification - CAS2011
davidbonilla
81
5.2k
Fontdeck: Realign not Redesign
paulrobertlloyd
84
5.5k
Writing Fast Ruby
sferik
628
61k
Transcript
5ZQF4DSJQU Ͱ͜ΜͳʹਐԽ͠· ͨ͠ +BO 5FDI'FFE&YQFSUT/JHIU+BWB4DSJQU5ZQF4DSJQU࠷લઢ !PLVOPLFOUBSP
୭ w Ԟݡଠ!PLVOPLFOUBSP w ΫϨεΣΞגࣜձࣾ w 5ZQF4DSJQUྺ w ϑϩϯ τΤϯ
υ ɾ όοΫΤϯ υ
5ZQF4DSJQUࡀ w 5ZQF4DSJQU݄ੜ·Ε w ʹύϒϦ οΫͱͳΔ w ʹͯϑΟ ʔ υόοΫΛͱʹվྑ͠Λࢦ͢
w Array͕Array<T>ʹͳΔ w ݄ʹ͕Ϧ Ϧʔε
5ZQF4DSJQUY w %F fi OJUFMZ5ZQFE ʢ༗ࢤίϛϡχςΟʣ ʹͯ ࣍ʑ
ͱ+4ϥΠ ϒϥ Ϧ༻ͷܕఆٛϑΝΠϧ(.d.ts)͕࡞͞ΕΔ w OQNͰཧ͞Ε͍ͯͳ͍࣌ w ܕఆٛґଘղܾπʔϧͱ͍͏ͷ͕ผʹ͋ͬͨ
5ZQF4DSJQUY w %F fi OJUFMZ5ZQFEͷܕఆٛϑΝΠϧ͕OQNʹͯཧ͞ΕΔ w ͍·ͨΓલ w @types/somethingΠϯε
τʔϧෆཁͰแ͍ͯ͠Δ͜ͱ͢Β͋Δ w ৽֓೦ͷొ w --strictNullChecks w neverܕ
5ZQF4DSJQUͷࠎ֨Λ࡞ͬͨ࣌ w 5VQMF5ZQFT w 6OJPO5ZQFT w
5ZQF(VBSET w 4USJOH-JUFSBM5ZQFT w .BQQFE5ZQFT w $POEJUJPOBM5ZQFT
5ZQF4DSJQUY w ৽֓೦ͷొ w unknownܕ w Α ΓߴͳܕఆٛͷͨΊͷվྑ w
Y·Ͱͷ৽ػೳʹର͢Δ֦ுվྑ w Α Γݡ͍ܕਪͱܕΨʔ υ
IUUQTRJJUBDPNBEWFOUDBMFOEBSPLVOPLFOUBSPUT 5ZQF4DSJQUҰਓΞ υϕϯ τΧϨϯμʔ
5ZQF4DSJQU w 5FNQMBUF-JUFSBM5ZQFT w ໘ന͍͜ͱΓ์ w ԼهλΠ τϧͰݕࡧ wʰ5ZQF4DSJQUܕύζϧͰ࡞ΔNJOJJOUFSQSFUFSʱ
wʰ5ZQF4DSJQUͷܕఆٛͰຑͷఆΛ͢Δʱ
5ZQF4DSJQU w 3FDVSTJWF$POEJUJPOBM5ZQFT w $POEJUJPOBM5ZQFTͷܕܾఆॲཧ͕࠶ؼՄೳʹͳͬͨ w ΧϨϯμʔ ʰ࣮ྫRecursivePartial<T>ʱ ʹͯհ
IUUQT[FOOEFWPLVOPLFOUBSPBSUJDMFTHNQLQH[CHLINCLBQDL
5ZQF4DSJQU w --useUnknownInCatchVariables w DBUDIϒϩοΫͰͷFSSม͕σϑΥϧ τͰunknownܕѻ͍͞ΕΔΑ ͏ʹͳͬͨ w ·Ͱanyܕ
w Ҏ߱ɺ ΦϓγϣφϧͰunknownܕʹมߋ
5ZQF4DSJQU w /PEFKTʹ͓͚Δ&4.PEVMFʹରԠ͢ΔͨΊͷίϯύΠϧ ɾ ΦϓγϣϯՃ w ͔Βʹ͔͚ͯ$+4 &4.ؔ࿈ͷରԠΛॆ࣮ wʰ5ZQF4DSJQUͱ/BUJWF/PEFKT&4.ʱ
ʹৄ͍͠ IUUQTRVSBNZNFEJVNDPNUZQFTDSJQU&"OBUJWFOPEFKTFTNBCB
5ZQF4DSJQU w satisfies0QFSBUPS w ٱʑʹ৽֓೦ w ຊͷࣛ͞Μͷ ʰ5ZQF4DSJQUͷBTDPOTUTBUJT fi
FT͕ศརʱ ͕ৄ͍͠
ਐԽͷ w 5ZQF4DSJQU͔Β·Ͱౖ౭ͷਐԽͩͬͨ w ʑมΘΔۀ্ͰͷςΫχοΫ w ػೳՃͷͨͼʹ ʮ͋ΕͲ͜Ͱ͑Δʯ Λߟ͍͑ͯ͘ w
Ҏ߱Ұൠతͳ։ൃۀΛ͜ͳ͢ݶΓͰɺ ͔ͳΓΏΔ͔ͳਐԽ w ΏΔ͔͚ͩͲ͔Ώ͍ͱ͜Ζʹख͕ಧ͘ਐԽ͕૿͑ͨ w ܕఆٛ࡞ऀʹͱͬͯ ʮͬͯ·ͨ͠ʯ ͳػೳՃ͕ଟ͍͕ όʔδϣϯ͘ Β͍ͳΒΩϟονΞοϓ͕Εͯେৎ ʂ w ͓ͬͯ͘ ͱ ʮۀ্Ͱͪΐͬͱॿ͔Δʯ ͷස͕૿͑ͯ͘ Δ͔
ֶशํ๏ͷεεϝ w 5ZQF4DSJQUॳֶऀʹઐॻͱํͷΞ υϕϯ τΧϨϯμʔ ̎ ̑ هࣄΛΦεεϝ w ઐॻˠཏతʹ֬ೝͰ͖Δ
w Ξ υϕϯ τΧϨϯμʔˠۀ্ͰͷΛ๛ʹհ w ࠓޙͲ͏ ͍ͯ͘͠ ͱΑ͍͔ ʁ w 5ZQF4DSJQUࣗମͷΩϟονΞοϓ͢Δͱͯ͠ɺ Ή͠ΖपลࣄʹڵຯΛͭ͜ͱΛΦεεϝ w %FOPͱ ʁ #VOͱ ʁ &4ͱ ʁ 5$ͱ ʁ w Ϟδϡʔϧࣄ ʁ $+4 &4. όϯ υϧࣄ ʁ ʢ5VSCP 7JUFͳͲʣ
5IBOLZPV