🟢 2.7 Vue での型付けがなぜ安全なのか?(ref<number>(), defineProps<{ ... }>() の背景)


✅ 【要点】


🟠 【普通の JavaScript だと何が起きる?】

const count = 0;     // ← 数値だと思ってた

count.toUpperCase(); // ❌ エラー!数値に toUpperCase はない

🚩 型がないと「何が入るべきか」がわからない → 使い方を間違えても気づかない


🟢 【TypeScript + Vue の ref → 型を固定できる】

import { ref } from 'vue';

const count = ref<number>(0);  // ← 最初から「これは number です」と宣言

count.value += 1;              // OK!
count.value = 'Hello';         // ❌ エラー! string は入れられない

書き方 安全性
ref<number>(0) number 型のリアクティブ変数 間違った型が入れられない
ref<string>('Hi') string toUpperCase() が安全に使える

🎯 「何が入るべきか」を決める → 型ミスを防ぐ。


🟣 【props の型付け → defineProps の例】