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
tpac_study (2026)
Search
Saji
June 23, 2026
Technology
8
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
tpac_study (2026)
#tpac_study
-
https://web-study.connpass.com/event/378948/
X
-
https://twitter.com/sajikix
Saji
June 23, 2026
More Decks by Saji
See All by Saji
業務に残された「良くない型」で考える「TypeScriptの難しさ」
sajikix
4
6.8k
It’s “Time” to use Temporal
sajikix
3
330
ユーザーが作成したコードをブラウザ上で安全に実行できる Plugin システムへのアプローチ
sajikix
1
730
Branded Typesで日時の複雑さと戦う
sajikix
4
1.2k
推しProposalと広がる夢~Intl.MessageFormatとDomLocalization~
sajikix
1
680
自作JSエンジンに推しプロポーザルを実装したい!
sajikix
1
350
Lookback TypeScript ESM support and what should we do now.
sajikix
5
810
フロントエンドで日時処理と戦うために 2025 ver
sajikix
6
4.7k
先取り!Temporal
sajikix
0
310
Other Decks in Technology
See All in Technology
ルールやカスタム機能、どう活かす?ハンズオンで体感するIBM Bobの出力コントロール
muehara
1
160
あなたの AI ワークスペースに、 専門コーダーを連れてくる - Amazon Quick Desktop 最新情報
kawaji_scratch
1
140
2026TECHFRESH畢業分享會 - 原生還是跨平台? App 開發踩坑實錄
line_developers_tw
PRO
0
1k
AIの性能が向上しても未解決な組織の重大問題は何か?/An Unsolved Organizational Problem in the Age of AI
moriyuya
4
660
Oracle AI Database@AWS:サービス概要のご紹介
oracle4engineer
PRO
4
2.9k
現地で盛り上がった WWDC26 Keynote
zozotech
PRO
1
240
失敗を経て、Harness Engineering で 大切にしたいことを考える / Learning from Failure: What Matters in Harness Engineering
bitkey
PRO
1
370
GitHub Copilot 最新アップデート – 「一歩先」の実践活用術
moulongzhang
2
330
新しいVibe Codingと”自走”について
watany
6
320
作って終わりにしない タイミーのセマンティックレイヤー育成の現在地
chanyou0311
4
2.3k
NAB Show 2026 動画技術関連レポート / NAB Show 2026 Report
cyberagentdevelopers
PRO
0
200
AIエージェントが名古屋の猛暑からあなたを守る
happysamurai294
0
110
Featured
See All Featured
The Mindset for Success: Future Career Progression
greggifford
PRO
0
360
The Pragmatic Product Professional
lauravandoore
37
7.3k
Rails Girls Zürich Keynote
gr2m
96
14k
Why Our Code Smells
bkeepers
PRO
340
58k
Into the Great Unknown - MozCon
thekraken
41
2.6k
Art, The Web, and Tiny UX
lynnandtonic
304
22k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.2k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
1.1k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
The Language of Interfaces
destraynor
162
27k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
250
The untapped power of vector embeddings
frankvandijk
2
1.8k
Transcript
3ZVTFJ4BKJLJ!TBKJLJY "NCJUJPOBOE*NQSPWFNFOUJOJO UQBD@TUVEZ
4BKJ3ZVTFJ4BKJLJ 'SPOUFOE%FWFMPQFSBU$ZCP[V JOD 𝕏 !TBKJLJY
͕ࣗओʹࢀՃͨ͠8(TFTTJPO ࣗͷڵຯ*OUM࣌ࠃࡍԽͱ͔ͳͷͰ w *O8( ϝΠϯ w *OपΓͷKPJOUNFFUJOHCSFBLPVUTFTTJPO w 8JOUFS5$
গ͚ͩ͠ w 8FC&EJUJOH গ͚ͩ͠ Έ͍ͨͳײ͡
͕ࣗओʹࢀՃͨ͠8(TFTTJPO *O8(ͷ༷ࢠ
"NCJUJPO
৺తͩͳͱࢥͬͨఏҊΛͭհ #SFBLPVU4FTTJPOͳͲͰ݁ߏ৺తͳ༷ఏҊͷ͕ଟ͔ͬͨ ݸਓతʹ࣌ʹ໘ന͔ͬͨͷ͕ҎԼͷͭ %0.-PDBMJ[BUJPO "NPVOU&MFNFOU
%0.-PDBMJ[BUJPO จݴϦιʔεΛ؆୯͔ͭॊೈʹಡΈࠐΉఏҊ w $44ʹࣅͨܗͰར༻͢ΔจݴϦιʔεΛએݴͰ͖ΔΑ͏ʹ͍ͨ͠ w )5.-ଆͰจݴΛ LFZͳͲͰ ࢦఆ͢Δ͜ͱͰϩʔΧϥΠζ͞ΕΔ ͬͯݴΘΕͯ🤔
%0.-PDBMJ[BUJPO Ծ จݴϦιʔεͷಡΈࠐΈ w $44ಉ༷ʹಡΈࠐΉ <html> <head> <link rel="localization" src="uri/for/resource.mf"
/> </head> </html>
%0.-PDBMJ[BUJPO Ծ จݴͷࢦఆ w ઐ༻ͷଐੑͰจݴͷLFZҾΛࢦఆͰ͖Δ <body> <h1 l10n-id="greeting" l10n-args="userName: John"></h1>
</body>
લఏͱͳΔ༷ͨͪ %0.-PDBMJ[BUJPOΛ࣮ݱ͢ΔͨΊʹؔ࿈͢Δඞཁͳ༷͕͋Δ w ϝοηʔδࣗମͷߏจͷ༷ w ˠ*$6.FTTBHF'PSNBUW w ϝοηʔδΛ+4͔Βѻ͏ͨΊͷ༻ w ˠ*OUM.FTTBHF'PSNBU
w ෳͷϝοηʔδΛ·ͱΊͨϦιʔεϑΝΠϧͷ༷ w ˠ.FTTBHF3FTPVSDFT
*$6.FTTBHF'PSNBU 6OJDPEFͷ$-%35$͕ࡦఆͯ͠ΔจݴϑΥʔϚοτͷ༷ w 6OJDPEFͷग़͢$-%3WͰ4UBCMFʹͳͬͨ w Α͋͘ΔΑ͏ͳϓϨΠεϗϧμͷຒΊࠐΈҎ֎ʹ w ϝοηʔδͰͷมએݴɾؔݺͼग़͠ w NBUDIߏจʹΑΔύλʔϯϚον
w ϚʔΫΞοϓॻࣜ
*$6.FTTBHF'PSNBU ύλʔϯϚον ؔݺͼग़͠
*OUM.FTTBHF'PSNBU .FTTBHF'PSNBUΛ*OUMͰॻࣜԽͰ͖ΔΑ͏ʹ͢Δ༷ w ݱࡏ&$."4DSJQUͷ4UBHF const mf = new Intl.MessageFormat("en","Hello {$place}!");
mf.format({ place: "World" }); // ↓ // Hello World!
ϦιʔεϑΝΠϧͷ༷ .FTTBHF'PSNBUWͰॻ͔Ε֤ͨจݴΛ·ͱΊͨϦιʔεϑΟϧͷܗࣜ w ݱࡏ8$ͷJO8(Ͱڠ͕ٞਐΜͰ͍Δஈ֊ ݱࡏఏҊ͞Ε͍ͯΔྫ มΘΔՄೳੑଟ͍ʹ͋Γ @locale en-US ---
one = A plain, simple message. [section] two = Another message with a {$placeholder}.
%0.-PDBMJ[BUJPO ·ͩ·ͩ͜Ε͔Β w հͨ͠Α͏ʹલఏͱͳΔܾΊͳ͖Ό͍͚ͳ͍༷͕ଟ͍ w Өڹൣғ͘͢͝େ͖͍ w )5.-ͷ༷ʹେ͖͘खΛೖΕΔඞཁ͕͋Δ w ܾ·ͬͯͳ͍ͱ͜Ζͨ͘͞Μ͋Δ
w ৽͍͠ςϯϓϨʔτΤϯδϯΈ͍ͨͳΒͳ͍ʁΈ͍ͨͳ࣭ w 51"$Ͱʮ·ͣ8(࡞Δͱ͔͜ΒͩͶ͐ʯΈ͍ͨͳ݁ʹͳͬͯͨ
"NPVOUཁૉ ୯ҐͱΛηοτʹ࣋ͯΔ৽͍͠)5.-ཁૉͷఏҊ w ୯ҐΛͱηοτͰએݴ͢Δ͜ͱͰҎԼͷΑ͏ͳ͜ͱ͕؆୯ʹ w ୯Ґม w ϩʔΧϥΠζ w ͢ͰʹUJNFཁૉEBUFཁૉ͋Δ͕
w ୯Ґ͕ݶఆతͰ͋Γɺͬͱ֦ுੑͷߴ͍ͷʹ͍ͨ͠
"NPVOUཁૉ VOJUWBMVFͱ͍ͬͨଐੑΛ࣋ͭ w VOJUଐੑ4*୯Ґܥʹ͋ΔΑ͏ͳཧ୯Ґ w WBMVFଐੑλά͡Όͳ͘WBMVFͱͯ͠ॻ͚Δ <amount value=42.2 unit=km>42,2</amount>
&$."4DSJQUͷ"NPVOUͷఏҊ "NPVOUͱ͍͏&$."4DSJQUͷ4UBHFͷఏҊ͕͋Δ w ݩʑ3FQSFTFOUJOH.FBTVSFTͱݺ͍ͯͨఏҊ w ॳ୯ҐมػೳͳͲαϙʔτ͢Δ༧ఆ͕༷͕ͩͬͨݮ͞ΕͯΔ w ݱঢ়Ͱ୯ҐͱΛηοτͰཧ͢Δσʔλܗࣜͱͯ͠ͷఏҊ +4 ↔︎
)5.-Ͱࠓޙ࿈ܞ͕ͱΒΕ͍͔ͯ͘ let a = new Amount("42.195", { unit: "km" });
"NPVOUͷఏҊ ݸਓతʹ&$."4DSJQUଆͷ༷Λڵຯ࣋ͬͯͬͯͨ *OUM͖ͳͷͰ w ͦͦ&4ͷ༷ఏҊͰ୯Ґͱ͍ͬͨ෦͕࠷ۙΞπΠ w ࣗͷڵຯͱͭͳ͕͖ͬͯͨͷͰݸਓతʹ໘ന͔ͬͨ ࠷ۙ&$."ͷ༷ࡦఆͷͳ͔ͷϓϩηεʹJO8(ͷϨϏϡʔ͕ೖΔ w
ඪ४Խஂମҧͬͯͭͳ͕͍ͬͯΔ࣮ײ
*NQSPWFNFOU
༷ఏҊ͢Δ͚ͩ͡Όͳ͍ *O8(ͷΔ͜ͱ༷ఏҊΛ͢Δ͚ͩͰͳ͍ w ଞͷ8(ʹΑΔఏҊͷϨϏϡʔ w ༷ࡦఆͷ్தͰϨϏϡʔ͕ೖΔ w ཧͯ͠ΔυΩϡϝϯτ͕݁ߏ͋Δ w దٓߋ৽ɾमਖ਼ͯ͠Δ
JO8(ͷ%PDVNFOU ಡΜͩ͜ͱ͋Δʁ🖐
ࣗͪΌΜͱ Βͳ͔ͬͨ🙇
JO8(ͷ͍࣋ͬͯΔ%PDVNFOU w IUUQTXXXXPSHCMPHJOUFSOBUJPOBMʹߦͬͯΈΑ͏
JO8(ͷ͍࣋ͬͯΔ%PDVNFOUΛ ҎԼͷΑ͏ͳ%PDVNFOU͕ฒΜͰΔ w -BOHVBHF&OBCMFNFOU w ݴޠʹΑΔ֤ػೳͷαϙʔτঢ়گ w %FWFMPQQFS4VQQPSU w ༷ͷࡦఆʹؔ͢ΔυΩϡϝϯτϒϥβ࣮͚ͷυΩϡϝϯτ
w &EVDBUJPO0VUSFBDI w ίϯςϯπ࡞ɾ։ൃऀ͚ͷίϯςϯπ
ΞϓϦ։ൃऀʹࢀߟʹͳΓͦ͏ͳͷ (FUUJOH4UBSUFEXJUI*OUFSOBUJPOBMJ[BUJPO w JOͱMOͷҧ͍ͳͲ͔Βελʔτͯ͠ߨ࠲ܗࣜͰֶΔهࣄ܈ "VUIPSJOH)5.-$44 w )5.-$44Λॻ্͘Ͱ߲͝ͱʹJO8(ͷ%PD-JOL͕·ͱ·ͬͯΔ w ͔͜͜ΒؾʹͳΔͷΛ୳͢ͷ͕ૣ͍ "SUJDMFMJTU
51"$Ͱಛʹ໘ന͔ͬͨٞ 51"$Ͱ%PDVNFOUͷߋ৽ͳͲ͕ੵۃతʹߦΘΕ͍ͯͨ ͦͷதͰಛʹ໘ന͔ͬͨٞɾ%PD w ʮจࣈԽ͚ʯͷఆٛͷ w 4USJOH4FBSDIJOHͷυΩϡϝϯτվળ
51"$Ͱ໘ന͔ͬͨٞNPKJCBLFͷఆٛ *O8(Ͱ*OUFSOBUJPOBMJ[BUJPO(MPTTBSZͱ͍͏༻ޠूΛཧͯ͠Δ ͦͷதʹຊޠ͔Βͦͷ··࠾༻͞ΕͨʮNPKJCBLFʯ͕͋Δ ٞ͞Εͯͨ͜ͱ w ϑΥϯτ͕ͳͯ͘ϨϯμʔͰ͖ͳ͍͜ͱͱNPKJCBLFҟͳΔͷͰʁ w ͦͦTQFDͰΘΕΔʁ w தࠃͰಉ͡Α͏ͳ֓೦͕͋Δʁ
51"$Ͱͬͨ໘ന%PD4USJOH4FBSDIJOH *O8(Ͱ4USJOH4FBSDIJOHͱ͍͏จࣈྻݕࡧػೳͷͨΊͷจॻ͕͋Δ w ͜ͷ࣌Ͱ͍͢͝ จࣈྻݕࡧ͚ͩͰҎԼͷΑ͏ͳ͜ͱΛؾʹ͢Δඞཁ͕͋Δ w શ֯֯ʁେจࣈখจࣈʁ w ࣈͱ͔ଞݴޠͷࣈจࣈώοτ͢Δจࣈͷೖͬͨه߸ͷѻ͍ ͜ͷ%PD5"1$தʹ͍͔ͭ͘ࢀߟจݙͷՃ6QEBUF͕ͳ͞Εͨ
·ͱΊͱ͔ײͱ͔ࢥ͍ͱ͔ 8$ʹ͓͚ΔࠃࡍԽͷͨΊͷӦΈଟذʹΘͨΔ w ఏҊ͞ΕΔ༷໘ന͍͚ͲɺͦΕҎ֎ͷ׆ಈ͋Δ͍ͩ͠͡ w ͔ͤͬ͘ॻ͍ͯΔ%PDVNFOUಡ·Εͯཉ͍͠ͳ ࣗগͣͭ͠ಡΜͰΔ ૾ΑΓͣͬͱগͳ͍ਓ͕ͳΜͱ͔ࢧ͍͑ͯΔঢ়ଶͩͬͨ w
֤ਓͷࣝྔͱࠃࡍԽͷࢥ͍ͰͳΜͱΓཱͬͯΔ Α͏ʹݟ͑ͨ w ຊޠͱ͍͏ׂͱಛघͳݴޠΛ͍ͬͯΔҎ্ɺશવਓ͝ͱ͡Όͳ͍ w ݴޠࣄऀ͕͍ΕΔͱ͍͏͜ͱେ͖͍
ऴΘΓ