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
TS5.4と5.5のいいやつ
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
めろたんたんめん
May 23, 2024
240
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
TS5.4と5.5のいいやつ
めろたんたんめん
May 23, 2024
More Decks by めろたんたんめん
See All by めろたんたんめん
Nuxt.jsからNext.jsに 乗り換えるにあたって 大変だったこと
renyamizuno
0
310
HoudiniによるCSS錬金術
renyamizuno
0
120
MisocaでReactした話
renyamizuno
1
2.4k
Featured
See All Featured
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
1
450
The Curious Case for Waylosing
cassininazir
1
570
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
260
Paper Plane (Part 1)
katiecoart
PRO
2
12k
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
990
The browser strikes back
jonoalderson
0
1.8k
Odyssey Design
rkendrick25
PRO
2
870
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
580
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
600
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.9k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.4k
Designing Powerful Visuals for Engaging Learning
tmiket
1
610
Transcript
TS5.4と5.5のこれ便利そう @merotan
雑自己紹介 めろたん X(Twitter): @renyamizuno_ - 株式会社Leaner Technologiesで働いてる。 - フロントエンドを主軸にガヤガヤしてる人。 -
サーバーサイドもやってる(最近はやってない())。
TS5.4
NoInfer
NoInfer ジェネリック関数で引数の型をもとに、他の引数の形を推測できるようになる。
declare function doSomething<T extends string>(a: T[], b: T): void doSomething(["cat",
"dog"], "hamster")
declare function doSomething<T extends string> (a: T[], b: NoInfer<T>): void
doSomething(["cat", "dog"], "hamster")
None
Narrowing
Preserved Narrowing in Closures Following Last Assignments クロージャーの中で変数の型をよしなにしてくれる(雑 クロージャーの外で定義した変数の型推論がよりよくなる。 最後に代入された値の型になる。
function doSomething(names: string[], word: string | undefined) { if (word
=== undefined) { word = "hello!!"; } return names.map(name => `${name} ${word.toUpperCase()}`) }
function doSomething(names: string[], word: string | undefined) { if (word
=== undefined) { word = "hello!!"; } return names.map(name => `${name} ${word.toUpperCase()}`) }
TS5.5 (Beta)
Inferred Type Predicates
Inferred Type Predicates より良い感じに型を推論してくれる(雑 x === null とかを行った場合、より適切な型推論を行うようになる。 「is」が不要になることがある。
const array = [1,2,3,null,5].filter(x => x !== null) array.reduce((a, b)
=> a + b, 0)
const array = [1,2,3,null,5].filter(x => x !== null) array.reduce((a, b)
=> a + b, 0)
おわり https://devblogs.microsoft.com/typescript/announcing-typescript-5-4/ https://devblogs.microsoft.com/typescript/announcing-typescript-5-5-beta/
Control Flow Narrowing for Constant Indexed Accesses
function f(obj: Record<string, unknown>, key: string) { if (typeof obj[key]
=== "string") { obj[key].toUpperCase(); } }
function f(obj: Record<string, unknown>, key: string) { if (typeof obj[key]
=== "string") { obj[key].toUpperCase(); } }