【初心者必見】TypeScriptのanyとunknownの違いを完全解説!使い分けをマスターしよう

  • 2025年4月29日
  • 2025年4月29日
  • TypeScript
  • 1View
  • 0件

【初心者向け】TypeScriptのanyとunknownの違いをわかりやすく解説!

TypeScriptを使っているとよく目にする anyunknown。どちらも「どんな型でも受け取れる」特徴を持っていますが、実は大きな違いがあります。

anyとは?

any は「何でもアリ」の型です。コンパイラの型チェックをスルーできるため、どんな値でも代入・使用が可能です。

let anything: any = 123;
anything = "Hello";
anything = { key: "value" };
// エラーなし!

便利な反面、型安全性が崩壊するため、使いすぎるとバグの温床になります。

unknownとは?

unknown は「何でも受け取れるけど、使う前にチェックが必要」な型です。

let something: unknown = 123;
something = "Hello";
something = { key: "value" };

// 直接使おうとするとエラー
// console.log(something.toFixed()); // ❌エラー

// 使う前に型チェックが必要
if (typeof something === "number") {
    console.log(something.toFixed()); // OK
}

型の確認を強制することで、安全なコードを書けるメリットがあります。

anyとunknownの決定的な違い

項目anyunknown
代入できるもの何でも何でも
使用時の制約なし(危険)型チェック必須(安全)
型安全性ない高い

どっちを使うべき?

基本的にはunknown推奨です。

どうしても型がわからないデータを扱う場合でも、unknownを使うことで、型チェックを忘れず安全にコードを書くことができます。

ポイントまとめ

  • とりあえず動かしたいなら any(ただしリスクあり)
  • 型安全にこだわるなら unknown(推奨)

まとめ

TypeScript初心者ほど、「unknownをデフォルト」と考えるのがオススメです!

型安全なコードを書けるようになれば、開発スピードも品質もぐんと上がりますよ✨