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で設定しておきたいオプションを逆引きで紹介する - kansai.ts #7
Search
Kanon
June 15, 2024
Technology
1
18
TypeScriptで設定しておきたいオプションを逆引きで紹介する - kansai.ts #7
kansai.ts #7での登壇資料です。
Kanon
June 15, 2024
Tweet
Share
More Decks by Kanon
See All by Kanon
WebサーバーとPHP実行方式を きちんと理解してPHPランタイムを 適切に使い分ける - PHPカンファレンス福岡2024
ysknsid25
2
140
ぼっち・ざ・りもーと! 〜フルリモならオフラインLTへ行け!〜
ysknsid25
1
10
東遊園地近辺のおすすめランチ・カフェ
ysknsid25
1
31
変な先入観を捨てて、 とりあえず関西のLT会で発表してみない?
ysknsid25
1
12
ChatGPT Visionで色々実験したまとめ - Kobe Engineer SakeBash #3 with HACK.BAR
ysknsid25
1
30
Google I/O 2024で発表された Firebase App HostingでNext.jsのSSRを試す
ysknsid25
2
160
Flutter on the Webでアプリを作り、 React/Next.jsの違いを体感する - FlutterKaigi mini Osaka #1 with Mix Leap Study #75
ysknsid25
3
56
Nest.jsを使ってみたら とても開発体験がよかった話 - 関西Node学園 11時限目
ysknsid25
0
28
eslint-plugin-securityを導入して、 低労力で堅牢なコードを作る
ysknsid25
1
74
Other Decks in Technology
See All in Technology
「開発生産性を上げる改善」って儲かるの?に答えられるようにする / Is development productivity profitable?
i35_267
10
2k
10社以上のCTO/技術顧問を経験してみえた 技術組織に起こる課題と対策
otani_yuji
3
1.2k
Columinity (旧Scrum Team Survey) を使ってチームの継続的な改善活動を始めよう / Scrum Fest Osaka 2024
ama_ch
2
150
品質活動を事業に結びつけるためのQA文化の築き方 / how to build QA culture
mii3king
1
1.2k
スクラムエッセンス導入3ヶ月のチームに起きた変化
hacomono
PRO
1
120
育休を約半年取得しまた1カ⽉取ろうとしているエンジニア
sansantech
PRO
1
160
半年かけてPHP5.6からPHP7.4までバージョンアップした苦労と工夫 PHPカンファレンス福岡2024
kechiiin
1
170
やさしいITを目指すために
ishity__
0
290
Kotlinらしいコードを書こう - Convert Java File to Kotlin File のあとにやること / What to do after Convert Java File to Kotlin File
yanzm
0
1.6k
Recap: Kotlin Language Features in 2.0 and Beyond (Michail Zarečenskij)
dalinaum
0
230
スクラムチームだけどエクセルで要件定義書を書くことにしました / Requirements-Specification-Document-in-Scrum
okamototakuyasr2
0
170
RAG構築におけるKendraとPineconeの使い分け
sonoda_mj
1
130
Featured
See All Featured
Atom: Resistance is Futile
akmur
260
25k
Gamification - CAS2011
davidbonilla
77
4.8k
Adopting Sorbet at Scale
ufuk
69
8.7k
How to train your dragon (web standard)
notwaldorf
78
5.4k
The Illustrated Children's Guide to Kubernetes
chrisshort
35
47k
[RailsConf 2023] Rails as a piece of cake
palkan
31
4.2k
YesSQL, Process and Tooling at Scale
rocio
165
14k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
323
21k
Rebuilding a faster, lazier Slack
samanthasiow
75
8.4k
Rails Girls Zürich Keynote
gr2m
91
13k
Testing 201, or: Great Expectations
jmmastey
32
6.8k
Building Effective Engineering Teams - LeadDev
addyosmani
41
2.1k
Transcript
TypeScriptで設定しておきたい オプションを逆引きで紹介する Copyright © 2024 blessing software. All Rights Reserved.
Kanon (@samurai_se) #kansaits 1
自己紹介 2 Kanon 株式会社 虎の穴ラボ 個人事業 blessing software samurai_se ↓詳しくは↓
Copyright © 2024 blessing software. All Rights Reserved. • 3次元に嫁が1人います。2次元にはいっぱいいます • 最近「アイコンみたことある!」と声かけていただける率が増えてて嬉しい • 本業はKtor(Kotlin), Next.jsで副業がLaravel, Nest.js,Next.js • Kobe.tsという勉強会を主催しています
3 Copyright © 2024 blessing software. All Rights Reserved. 最初にみなさんに3つお願いしたいことがあります
4 Copyright © 2024 blessing software. All Rights Reserved. Kobe.tsのメンバーになってください!!
5 Copyright © 2024 blessing software. All Rights Reserved. 📢
最初に宣伝 🙏 オフラインLT会を 神戸で開催してます! 3週間前に作って今40人ちょい! TS+周辺技術 Figma、npmなどなど 範囲が広いので登壇しやすい!
6 Copyright © 2024 blessing software. All Rights Reserved. 以上、お知らせでした🙇
本編 Copyright © 2024 blessing software. All Rights Reserved. 7
暗黙のanyを禁止する 8 • strictが有効であれば必然的に有効 • 個別に設定する場合はnoImplicitAnyで設定が可能 • 例えば以下のように引数の型注釈を省略した場合anyと評価されるがそれを 禁止する Copyright
© 2024 blessing software. All Rights Reserved.
非null型や非undefined型の変数にそれらの代入を禁止する 9 • strictが有効であれば必然的に有効 • 個別に設定する場合はstrictNullChecksで設定可能 Copyright © 2024 blessing
software. All Rights Reserved. trueの場合エラー
引数の共変性を禁止する 10 • strictが有効であれば必然的に有効 • 個別に設定する場合はstrictFunctionsTypesで設定が可能 Copyright © 2024 blessing
software. All Rights Reserved.
引数の共変性とは 11 Copyright © 2024 blessing software. All Rights Reserved.
引数の共変性の問題点 12 Copyright © 2024 blessing software. All Rights Reserved.
• 型エイリアスはnumberのみ許容しているのに、nullを渡せてしまっている • これにより、実行時エラーが発生する可能性がある • このように、型定義の引数型より範囲を狭められる性質のことをいう • 一方で型定義の引数型より範囲を広められる性質のことを反変性という 反変の場合は実装に対 して指定した型への処 理不足がない
クラスプロパティの初期化を必須にする 13 • strictが有効であれば必然的に有効 • 個別に設定する場合はstrictPropertyInitializationで設定が可能 Copyright © 2024 blessing
software. All Rights Reserved.
クラスプロパティの初期化の方法 14 Copyright © 2024 blessing software. All Rights Reserved.
未使用の変数がある場合に怒ってもらう 15 • noUnusedLocalsで設定可能 • 未使用変数などただのゴミなので、必ず設定しておきたい Copyright © 2024 blessing
software. All Rights Reserved.
未使用の引数がある場合に怒ってもらう 16 • noUnusedParametersで設定可能 • 未使用引数などただのゴミなので、必ず設定しておきたい Copyright © 2024 blessing
software. All Rights Reserved.
空でないcase文でbreakやreturnを設定するように怒ってもらう 17 • noFallthroughCasesInSwitchで設定可能 Copyright © 2024 blessing software. All
Rights Reserved.
空でないcase文でbreakやreturnを設定するように怒ってもらう 18 Copyright © 2024 blessing software. All Rights Reserved.
空でないcase文でbreakやreturnを設定するように怒ってもらう 19 Copyright © 2024 blessing software. All Rights Reserved.
まとめ 20 • 結構デフォルトで有効になっているものがある • noUnusedLocals,noUnusedParametersは必須設定 • 他にも良さげなオプションがあるか見てみたい Copyright ©
2024 blessing software. All Rights Reserved.
21 ご清聴、あざざました Copyright © 2024 blessing software. All Rights Reserved.
Copyright © 2024 blessing software. All Rights Reserved. Illustrated by
@amon_mikio おわりに 三ノ宮で待ってます!! samurai_se