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
MOSKINというTypeScriptプロダクトを新規立ち上げする中で踏んだ地雷
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
KintoTech_Dev
June 10, 2026
16
0
Share
MOSKINというTypeScriptプロダクトを新規立ち上げする中で踏んだ地雷
KintoTech_Dev
June 10, 2026
More Decks by KintoTech_Dev
See All by KintoTech_Dev
KINTO Fukuoka Tech Lounge #1 E2E × AI
kintotechdev
0
62
個人の発見を、組織の知恵に 〜生成AI活用を"探索"から"組織の仕組み"へ〜
kintotechdev
2
620
Strands Agents超入門
kintotechdev
1
160
多数の観測対象と複数のO11yバックエンドをOTELで横断的に繋いだ実装について
kintotechdev
0
40
Splunk MCPサーバの利活用事例 ーKINTOテクノロジーズの取り組み
kintotechdev
1
470
型の深宇宙へ飛び込め — TSKaigi 2026 LT
kintotechdev
2
520
Scaling_Mobile_Test_Automation_with_Appium_and_AI
kintotechdev
0
44
Playwright × AI: Non-Technical QA Team in Practice
kintotechdev
0
41
Engineering Officeと 福岡のSET(FukuokaTechLab Meetup #1 〜福岡から挑むモビリティ開発の裏側〜)
kintotechdev
0
40
Featured
See All Featured
Deep Space Network (abreviated)
tonyrice
0
160
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
10k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.3k
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
120
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.5k
Un-Boring Meetings
codingconduct
0
300
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
1
140
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
sira's awesome portfolio website redesign presentation
elsirapls
0
270
Being A Developer After 40
akosma
91
590k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
180
Transcript
MOSKINというTypeScriptプロダクトを新規立ち上げする中で踏んだ地雷 -きんはむちゃんのTypeScript奮闘記- 新サービス開発部 FACTORY EC開発G 鈴木 優里 2026/06/10
新サービス開発部 FACTORY EC開発G 鈴木 優里 "きんはむちゃん" as { "夫による呼び名": "きんはむちゃん"
} 2023年KTC入社 UPGRADE FACTORYのFEを担当 2025年よりMOSKINの立ち上げからFEを担当 開発業務以外にも販促映像制作や商品・イベントで の撮影・ユーザーインタビューも担当している 私は複雑な型テクニックはあまり使わず 業務でシンプルにTypeScriptを使うタイプです - 特別なことはしていない - 普段の開発で使うレベル
None
モータースポーツの ワクワク全力応援。 2025年8月6日MOSKINのサービスがスタート‼️ 極限のスピードがドライバーを鍛え、クルマを鍛え るモータースポーツの世界。 体験したい気持ちはあっても、なかなか一歩踏み出せ ない。 その一歩、KINTOが応援します。 サブスク スポーツカーレンタル
https://motorsport.kinto-jp.com/ サーキットレンタル 走行・体験イベント
開発状況 サービス企画 × WEB立ち上げが同時進行 サービスのオペレーションも同時進行での企画だったので要件が定まりにくい PdM不在 実働はデザイナー1名・FE2名 リテラシーの差 Business:
- 事業部=モータースポーツ・自動車ドメインのプロ、WEB開発知見は少ない Develop: - WEBのプロ、車に興味あるメンバーは30%の割合 事業・開発共に、ほぼ初対面でのスタート 事業側の役割分担もわからず、開発内でも誰がどんなことを得意とするのかがわからず進めようにも 頼める人か不明な状況
コンテンツ - BEなし: - ミニマムリリース前提 - JSONでページ生成 コンテンツ運用:
1, Excelで入力(Excelのデータは事業部) 2, JSONに変換 3, ページ生成
今日の話 この状態で踏んだTypeScriptの地雷
地雷① Excelが仕様を壊した
理想 Excelに入力すればページ生成!
現実 - 情報がExcelに収まらない - 入稿が間に合わない - 独自フォーマットで連携される
結果 - JSON構造が崩壊 - 型にハマらない - UIも崩れる
学び - 入力フォーマットは運用で壊れる - 型より先に運用設計が必要
+α 地雷(データ理解不足) そもそもデータが理解できてなかった
状況 - 車のプロではない - 私はペーパードライバー
起きたこと - 数値と単位の区別がつかない - 全部stringにしそうになる type CarSpec = { power:
string; }
- わからないものに型はつけられない 学び - 型は知識をデータに対応させるルール - stringは「諦め」の型
地雷② 変わるJSONを型で守ろうとした
なぜ起きたか - 要件変わる - Excel崩れる - JSON変わる → でも型は守ろうとする
結果 - unionだらけ - optionalだらけ → 型の意味が消える
状態 - 型はある ✅ - でも何も守ってくれない ❌
学び - 型は“変わらないもの”に使う - 広げすぎると価値がなくなる
地雷③ 型があっても認識がズレてた
状況 同じ型を見ているのに解釈が違う type Event = { status: "open" | "closed";
} 開発: open:リンク表示 closed:終了した情報ごと非表示 事業: open:リンク表示 closed:イベント終了だが情報を表示
結果 - 型は正しい - でも表示がバグる 本質 - TypeScriptは「構造」は保証する - でも「意味」は保証しない
学び - 型はチームの共通言語 - 合意がないと意味がない
- JSONは仕様になる(特にBEがない場合) まとめ - 入力(Excel)は必ず壊れる - 型は「理解しているもの」にしかつけられない - 型は「安定」と「合意」に使う
ご静聴ありがとうございました