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
670
コードには型アノテーションよりも要件アノテーションを増やせ!/harajukuts2
okunokentaro
14
6.3k
10年と3ヶ月でWebサービスを作った話 / Piyogrammer Conference 2021
okunokentaro
2
1.1k
any禁止 絶対に型付けを諦めないための便利なユーティリティ関数 / techstand6
okunokentaro
21
6.6k
Other Decks in Technology
See All in Technology
Introduction to Sansan, inc / Sansan Global Development Center, Inc.
sansan33
PRO
0
2.6k
All About Sansan – for New Global Engineers
sansan33
PRO
1
1.2k
Introduction to Bill One Development Engineer
sansan33
PRO
0
230
AWS パートナー企業のテクニカルサポートが日々思っていること 〜そして、4/15 の現場から〜
kazzpapa3
2
380
AIに実況させる / AI Streamer
motemen
1
1.2k
勘違いから始まったProxmox on ProxmoxでGPUパススルー【JPmoxs勉強会#7】/JPmoxs7_GPU_Passthrough_on_Proxmox_on_Proxmox-A_Journey_That_Started_with_a_Misunderstanding
tsukimi_site
1
180
新卒から4年間、20年もののWebサービスと向き合って学んだソフトウェア考古学 - PHPカンファレンス新潟2025 / new graduate 4year software archeology
oguri
2
230
エッジ活用の最適解とは? 新しいエッジ処理アーキテクチャ「Edge-as-a-Service」構想について
kakerucom
0
120
【5分でわかる】セーフィー エンジニア向け会社紹介
safie_recruit
0
24k
Project Referencesを活用した実行環境ごとのtsconfig最適化
itatchi3
1
230
2025advance01
minamizaki
0
100
SmartHRの複数のチームにおけるMCPサーバーの活用事例と課題
yukisnow1823
1
820
Featured
See All Featured
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
357
30k
A better future with KSS
kneath
239
17k
The Cost Of JavaScript in 2023
addyosmani
49
7.9k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
The Language of Interfaces
destraynor
158
25k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
5
600
Automating Front-end Workflow
addyosmani
1370
200k
Building a Modern Day E-commerce SEO Strategy
aleyda
40
7.3k
Navigating Team Friction
lara
185
15k
Bash Introduction
62gerente
613
210k
Designing for humans not robots
tammielis
253
25k
The Pragmatic Product Professional
lauravandoore
33
6.6k
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