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
koz
December 24, 2020
Technology
0
260
TypeScriptに興味を持って欲しいスライド
https://easy2.connpass.com/event/197872/
TypeScriptはいいぞっていう気持ちを伝えるための資料。
元々は社内向けだったものを、社外向けにリメイクした。
koz
December 24, 2020
Tweet
Share
More Decks by koz
See All by koz
3分でわかる WebRTCのP2P通信
koz
0
80
Angularの雰囲気を伝えたい
koz
0
59
Other Decks in Technology
See All in Technology
CoRL 2025 Survey
harukiabe
1
200
AI時代こそ求められる設計力- AWSクラウドデザインパターン3選で信頼性と拡張性を高める-
kenichirokimura
3
330
GoでもGUIアプリを作りたい!
kworkdev
PRO
0
150
HR Force における DWH の併用事例 ~ サービス基盤としての BigQuery / 分析基盤としての Snowflake ~@Cross Data Platforms Meetup #2「BigQueryと愉快な仲間たち」
ryo_suzuki
0
220
アイテムレビュー機能導入からの学びと改善
zozotech
PRO
0
170
能登半島地震において デジタルができたこと・できなかったこと
ditccsugii
0
220
ユーザーの声とAI検証で進める、プロダクトディスカバリー
sansantech
PRO
1
140
サイバーエージェント流クラウドコスト削減施策「みんなで金塊堀太郎」
kurochan
4
1.9k
そのWAFのブロック、どう活かす? サービスを守るための実践的多層防御と思考法 / WAF blocks defense decision
kaminashi
0
200
今この時代に技術とどう向き合うべきか
gree_tech
PRO
2
1.9k
物体検出モデルでシイタケの収穫時期を自動判定してみた。 #devio2025
lamaglama39
0
160
生成AI時代のセキュアコーディングとDevSecOps
yuriemori
0
110
Featured
See All Featured
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
35
6.1k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
The Illustrated Children's Guide to Kubernetes
chrisshort
49
51k
A Tale of Four Properties
chriscoyier
161
23k
The Straight Up "How To Draw Better" Workshop
denniskardys
238
140k
Reflections from 52 weeks, 52 projects
jeffersonlam
353
21k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.5k
Building Adaptive Systems
keathley
44
2.8k
Automating Front-end Workflow
addyosmani
1371
200k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
189
55k
Become a Pro
speakerdeck
PRO
29
5.6k
Transcript
TypeScriptはいいぞ (TypeScriptはいいぞ)
https://www.itmedia.co.jp/news/articles/2012/07/news146.html
こんな人たちに届いて欲しい JavaScriptを知っているけど、TypeScriptは良くわかってない TypeScriptを聞いたことある人 サーバーサイドメインでフロントあんまり興味ない人
自己紹介
koz (こじ/こず) @kozzzzz4 TOPGATE - 普段はフロント側 - Angular頑張ってます - サクナヒメ(?)やってます
None
こんな経験ありませんか?
Uncaught ReferenceError: hoge is not defined
Uncaught TypeError: Cannot read property 'fuga' of undefined
Uncaught ReferenceError: hoge is not defined
TypeScriptって何?
JavaScript 型
完全に理解した! やったね!
TypeScriptはあなたを救います
救われる3つの内容 • 型安全性 (バグが減らせる) • 開発効率が上がる • 開発のアプローチが変わる
型安全性 型安全性とは、型検査によって不正なプログラムが混入するのを防ぐこと。 つまり、「型安全性 ≒ バグが減る」。
開発効率が上がる IDEによるコード補完が効きます。 これもTypeScriptを使用することによる恩恵です。 つまらないタイプミスとはおさらばです。
アプローチが変わる 型を考える→ロジックを組む。 JavaScriptを使用していた時ではありえませんでした。 型を意識してコードを書くので、無理やりなコードは産まれにくいです。
全然難しくない型
(最初は)難しい型は使う必要無し type Pick<T, K extends keyof T> = { [P
in K]: T[P]; };
引数の型と戻り値を書くだけ function sum(a: number, b: number): number { return a
+ b; }
インターフェースを定義するだけ interface Person { name: string; age: number; married: boolean;
} const person: Person = { name: 'xxx', age: 20, married: false };
ね?簡単でしょう?
これだけは守って欲しい
非any三原則 ※非any三原則(ひanyさんげんそく)とは、「 anyをもたない、つくらない、もちこまない」という三つの原則からな る、日本の国是。[要出典]
anyを指定した例 const a: any = 1; const b: any =
'b'; // コンパイラさんが仕事を放棄 const c = a * b;
any = コンパイラがエラーをだす仕事を放棄する anyは我々を救わない anyは危険 anyは闇の魔術 メーデー!メーデー!
闇の魔術に対する防衛術
ソースコードの平和を守ろう // tsconfig.json { "compilerOptions": { "strict": true, } }
tsconfig.jsonとは TypeScriptを使用したプロジェクトのルートディレクトリに配置されてるやつ。 コンパイルオプションなどを設定できる。 先ほどの例では、コンパイルオプションで”strict: true”を指定している。 { "compilerOptions": { "strict": true,
}
strict: true ? “strict: true”は複数のコンパイルオプションが設定される。 特に”noImplicitAny”がまじエクスペクトパトローナム。
noImplicitAny ? 暗黙的なanyの混入を防いでくれる。 明示的にanyしているのを発見したら、レビューで弾こう!
因みにAngularでやるなら Strict Modeが用意されてます。 ng new [project-name] --stricta Angular用のコンパイルオプションも有効化されます。
完全に興味が湧いた後は?
まずは触ってみよう! https://www.typescriptlang.org/play
調べてみよう! • 公式サイト(https://www.typescriptlang.org/) • TypeScript Deep Dive(https://basarat.gitbook.io/typescript/) • サバイバルTypeScript(https://book.yyts.org/) •
TypeScriptの型入門(https://qiita.com/uhyo/items/e2fdef2d3236b9bfe74a)
書籍で学ぼう! https://www.oreilly.co.jp/books/9784873119045/
おしまい。