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のことは嫌いにならないでください 〜フロントエ...
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Fumiya Konno
August 06, 2024
470
1
Share
私のことは嫌いになっても TypeScriptのことは嫌いにならないでください 〜フロントエンドエンジニアがTypeScriptと仲良くなる方法〜
TSKaigiサブイベント #1 フロントエンド
発表資料
https://typescript-jpc.connpass.com/event/325001/
Fumiya Konno
August 06, 2024
More Decks by Fumiya Konno
See All by Fumiya Konno
CDNから届ける Nuxt Edge-Side Rendering
238_k_
0
670
Featured
See All Featured
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
Testing 201, or: Great Expectations
jmmastey
46
8.1k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
160
YesSQL, Process and Tooling at Scale
rocio
174
15k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
260
A designer walks into a library…
pauljervisheath
211
24k
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
120
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.4k
How to Think Like a Performance Engineer
csswizardry
28
2.5k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
250
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.2k
Transcript
[LT]私のことは嫌いになっても TypeScriptのことは嫌いにならないでください 〜フロントエンドエンジニアがTypeScriptと仲良くなる方法〜 TSKaigiサブイベント #1 フロントエンド 株式会社ICS Fumiya Konno
発表の目的 G 初学者ってどこでつまづくんだっけ?を振り返 G 広大なTypeScriptの海を泳ぐヒントを提供する
自己紹介 株式会社ICS 昆野 史弥(@238_k_) フロントエンド専門の制作会社、株式会社ICSに 2019年入社 会社でメディア(https://ics.media/)を運営して いるのでよかったら見てください
JavaScriptでTODOアプリ を作ってみる いまいちど初心に戻って... https://github.com/ics-konno/todo-demo その後TypeScriptにする
要件 ' TODOを追加できÈ ' 追加したTODOを削除できÈ ' TODOにチェック状態をつけられる 要件 ' TODOを追加できÈ
' 追加したTODOを削除できÈ ' TODOにチェック状態をつけられる 動くようになったのでTypeScriptファイルにしてみたところ...
エラーがたくさん!
発生したエラーの一例 g 初期値が空の配列はany型になG g 引数には型が必f g querySelectorで取得したDOMはnullかもしれな% g e.target.valueはtargetがHTMLInputElementの場合にのみ生える JavaScriptでは気付け
なかったもの
ここがつらいよTypeScript f ブラウザAPIのような一般的な型のエラーは大体お決まりの作 法があu f ライブラリの型エラーはつらい..C f ライブラリ自体の型定義がよくないこともあるあu f ただし、がんばって解決できたら必ず成長すu
f 最悪型キャストしてランタイムでバリデーションをかける 型エラーが解消できない... 環境構築が大変... f ビルドツールを使おx f npm create vite コードが冗長になる... f あるべき姿に戻っただけ!
ここが嬉しいTypeScript JavaScriptより安全 I ランタイムエラーでエラーを検出するのは非合理8 I 型は事前にエラーになりうる箇所を検知してくれる 型はドキュメントになる I 作成した関数やクラスをどう使ってほしいかが明確になd I
他の実装者の自由度を下げることで、コードの品質が一定に 保たれる
TypeScript上級者への道 型エラーを解消できる S Optionalな型を理解でき8 S APIを適切に使用でき8 S 型の絞り込みができる 型を定義できる S
交差型やユニオン型を使用でき8 S 汎用型が使用できる 変数や型から型をつくれる Creating Types from Typek S ジェネリクy S keyof typeoe S Conditional Typek S Mapped Types type-challengesは楽しいよ〜
まとめ
型を知ろう B 型というのは..( % 潜在的なエラーを洗い出すも2 % ドキュメントの役割を果たすも2 % 開発を助けるもの B
レベルアップのヒンr B 型エラーをたくさん解決しよう B 自分で型を作ってみよう B TypeScriptの便利機能を使ってみよう B 人やAIに質問しよう
フロントエンドと型 2 型パズルよりも設X 2 TypeScriptの世界は深い。まずはフロントエンドのためのTypeScript を教えよう、学ぼr 2 みなさんにとっての「TypeScriptを使う理由」もぜひ教えて下さい
Thank You! ご清聴ありがとうございました!