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
Unknownのことをちゃんと知りたい_関西フロントエンド忘年会
[email protected]
×...
Search
is_ryo
December 06, 2024
Technology
43
0
Share
Unknownのことをちゃんと知りたい_関西フロントエンド忘年会
[email protected]
× KINTOテクノロジーズ
is_ryo
December 06, 2024
More Decks by is_ryo
See All by is_ryo
生成AIとエンジニアの仕事と私~実践知を添えて~
is_ryo
0
110
tRPC入門
is_ryo
1
320
TypeScriptでWebAssemblyに入門しよう
is_ryo
0
370
Honoが良さそう🔥
is_ryo
1
1.3k
LambdaのNodejsをアップデートしたら困った話
is_ryo
2
1.4k
頑張らないオレオレVuex規約を作った話
is_ryo
4
2.9k
AppSyncで始めるGraphQL
is_ryo
1
640
Other Decks in Technology
See All in Technology
Oracle AI Database@AWS:サービス概要のご紹介
oracle4engineer
PRO
4
2.6k
DI コンテナ自動生成ツールを実装してみた / intro-autodi
uhzz
0
820
Python開発環境にハーネス適用を検討する
yuuka51
0
330
JaSSTに関わることで変わった人生観 #jasstnano
makky_tyuyan
0
170
Agent Development Kit (ADK)で学ぶ実践Context Engineeringと社内での応用例
lycorptech_jp
PRO
0
260
LookerとADKで作る社内AIエージェント
chanyou0311
0
300
キャリア25年目にしてTypeScript に出会うまで - 「型」を通じて振り返るプログラミング言語遍歴 / Meeting TypeScript After 25 Years in Tech - Looking Back at My Programming Language Journey Through "Types"
bitkey
PRO
2
170
実例から学ぶ GuardDuty(SSH BruteForce)調査の全体フローと勘所【SecurityJAWS】
cscengineer
PRO
0
190
TSKaigi 2026 - enumよ、さようなら
teamlab
PRO
2
340
ソフトウェアサプライチェーン攻撃対策として今からサクッとできること
flatt_security
2
110
Oracle AI Database@Google Cloud:サービス概要のご紹介
oracle4engineer
PRO
6
1.4k
責任あるソフトウェアエンジニアリングの紹介4章・5章 / RSE_Ch4-5
ido_kara_deru
0
270
Featured
See All Featured
The Curious Case for Waylosing
cassininazir
1
360
Building an army of robots
kneath
306
46k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
260
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
350
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
170
Build your cross-platform service in a week with App Engine
jlugia
234
18k
Darren the Foodie - Storyboard
khoart
PRO
3
3.3k
A better future with KSS
kneath
240
18k
Believing is Seeing
oripsolob
1
130
Automating Front-end Workflow
addyosmani
1370
210k
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
110
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
570
Transcript
Unknownのことをちゃんと 知りたい 関西フロントエンド忘年会
[email protected]
× KINTOテクノロジーズ_2024/12/06
いずりょー #EngineeringManager #TypeScriptが好き #JavaScriptは嫌い #最近は生成 AIと戯れている #kansai.ts Organizer X →
@is_ryo Bluesky → is-ryo
今日は Unknownのことちゃんと 理解して使ってる? という話をします
質問 unknown型を 意識して使っている人
終 制作・著作 ━━━━━ いずりょー
結論 ちゃんとUnknownのことを理 解できたら anyはいらない (多分…きっと…知らんけど )
サバイバル TypeScriptによると • TypeScriptのunknown型は、型が何かわからないときに使う型です • unknown型にはどのような値も代入できます • unknown型はよく「型安全なany型」と言われ、any型と対比されます • any型はどのような型の変数にも代入できますが、unknown型の値は具
体的な型へ代入できません • などと書いてある
unknown型にはどのような値も代入できる
unknown型は「型安全な any型」
unknown型とany型の違い • unknown型もany型もどのような値も代入できる • unknown型はunknown型にしか再代入できない • any型に代入したオブジェクトのプロパティ、メソッドは使用することができ るが、unknown型は使用できないし実行もできない ◦ 意図しない実行時エラーを検知することができる
ざっくり言うと unknown型は安全に型を ぶっ飛ばして any型はTSを捨てる という感じ
any型を使っていいのは TSを捨てる覚悟のあるやつだけだ …
unknown型の使い方 • any型の値をより安全にする • 型アサーションの制約を回避する • TypeGuardを利用して正しい型をつける
None
None
まとめ • とりあえず「型が何かわからない 」という時に any型 を使うのではなくて unkonwn型 を使うことで堅牢なコードに1歩近づく • その結果コード量は増えるケースが多いとは思うので、そこはいい塩梅を
探す必要がある • (個人的には) 多少コード量が多くなっても any型 がない世界を目指した い ◦ コードレビューで any型 を排除する活動をし始めている
結論 ちゃんとUnknownのことを理 解できたら anyはいらない (多分…きっと…知らんけど )
Thanks!!!