Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
TypeScriptは10年でこんなに進化しました / TechFeed Experts Ni...
Search
OKUNOKENTARO
January 18, 2023
Technology
1.8k
6
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
TypeScriptは10年でこんなに進化しました / TechFeed Experts Night 11
2023/1/18に発表した資料です。
OKUNOKENTARO
January 18, 2023
More Decks by OKUNOKENTARO
See All by OKUNOKENTARO
トレタO/X アーキテクチャ移行記 Next.js App Router化への道のり / TORETA TECH UPDATE 1
okunokentaro
5
12k
Podcastを継続する技術 / refactoradio-240119
okunokentaro
1
240
Webアプリケーション設計の第一歩は ディレクトリの整理から / Encraft 1
okunokentaro
33
10k
JSONとJSON Schemaを改めて理解する / tokyo_study
okunokentaro
9
2.5k
それでもどうしてRecoilを使うのか / Harajuku.ts Meetup Recoil
okunokentaro
19
5.7k
Hasura.io RDBをサクサク作る方法はARやO/RMだけじゃなくなりました/hasura-io
okunokentaro
5
730
コードには型アノテーションよりも要件アノテーションを増やせ!/harajukuts2
okunokentaro
14
6.6k
10年と3ヶ月でWebサービスを作った話 / Piyogrammer Conference 2021
okunokentaro
2
1.1k
any禁止 絶対に型付けを諦めないための便利なユーティリティ関数 / techstand6
okunokentaro
21
6.9k
Other Decks in Technology
See All in Technology
脆弱性診断って、何をしているの? 〜弱点を見つけて、会社の改善につなげるまで〜
keeg
0
130
Google Cloud Next Tokyo 26登壇時のスクリプト
recruitengineers
PRO
0
200
今こそ知りたいAmplifyGen2
mkdev10
2
150
AIは爆速なのに、私が詰まっていた話 ― 音声入力と鳴くマスコットでボトルネックを削る
yama3133
0
530
2026-10-01_MagicPod_QAハーネスエンジニアリングとQA組織の未来像
ynisqa1988
1
540
ミイダス株式会社 テックチームのご紹介 / MIIDAS Tech Team
miidas
0
160
分析の民主化を支えるメタデータ整備の実践
kakehashi
PRO
1
650
[2026 Oracle Technical Deep Dive] Apache Iceberg × Oracle AI Database -Oracle Autonomous AI Lakehouseが実現するAI時代のデータ基盤- (2026年9月17日開催)
oracle4engineer
PRO
0
120
ビジネスを止めない技術的負債の返済のための戦略とその手法 - 技術的負債と向き合う / Complexity and Simplicity
soudai
PRO
3
650
実体験から学ぶ分析エージェントの開発と運⽤
recruitengineers
PRO
1
310
MCPゲートウェイを作って運用してわかったこと — Agent時代の権限管理の現在地
mtpooh
10
3.2k
[2026-09-30]ロックンロールは鳴り止まないっ - 信頼性かまってちゃん - 「データ駆動を投げ捨ててまで。」追いかける信頼性改善に向けた取り組みの話
tosite
0
210
Featured
See All Featured
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
3k
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
720
Making the Leap to Tech Lead
cromwellryan
135
10k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
3
4.3k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
450
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.6k
A Modern Web Designer's Workflow
chriscoyier
699
190k
Designing Powerful Visuals for Engaging Learning
tmiket
1
590
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
320
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
12k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
540
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