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
480
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
680
Featured
See All Featured
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
340
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.9k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
350
Visualization
eitanlees
152
17k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.4k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
190
Design in an AI World
tapps
1
220
Mobile First: as difficult as doing things right
swwweet
225
10k
The Limits of Empathy - UXLibs8
cassininazir
1
340
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.5k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.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! ご清聴ありがとうございました!