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.4k
10年と3ヶ月でWebサービスを作った話 / Piyogrammer Conference 2021
okunokentaro
2
1.1k
any禁止 絶対に型付けを諦めないための便利なユーティリティ関数 / techstand6
okunokentaro
21
6.6k
Other Decks in Technology
See All in Technology
技術職じゃない私がVibe Codingで感じた、AGIが身近になる未来
blueb
0
120
ユーザーのプロフィールデータを活用した推薦精度向上の取り組み
yudai00
0
280
Whats_new_in_Podman_and_CRI-O_2025-06
orimanabu
3
170
doda開発 生成AI元年宣言!自家製AIエージェントから始める生産性改革 / doda Development Declaration of the First Year of Generated AI! Productivity Reforms Starting with Home-grown AI Agents
techtekt
0
130
"SaaS is Dead" は本当か!? 生成AI時代の医療 Vertical SaaS のリアル
kakehashi
PRO
3
190
QAはソフトウェアエンジニアリングを学んで実践するのが大事なの
ymty
1
380
TODAY 看世界(?) 是我們在看扣啦!
line_developers_tw
PRO
0
150
バクラクのモノレポにおける AI Coding のための環境整備と {Roo,Claude} Code活用事例 / AI Coding in Bakuraku's Monorepo: Environment Setup & Case Studies with {Roo, Claude} Code
upamune
9
5.9k
堅牢な認証基盤の実現 TypeScriptで代数的データ型を活用する
kakehashi
PRO
2
210
In Praise of "Normal" Engineers (LDX3)
charity
0
740
AWS全冠したので振りかえってみる
tajimon
0
130
Data Hubグループ 紹介資料
sansan33
PRO
0
1.8k
Featured
See All Featured
Reflections from 52 weeks, 52 projects
jeffersonlam
349
20k
Designing Experiences People Love
moore
142
24k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
47
2.8k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
26k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
228
22k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Why Our Code Smells
bkeepers
PRO
337
57k
Building an army of robots
kneath
306
45k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
161
15k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
52
2.8k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Navigating Team Friction
lara
186
15k
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