使用更符合主流的 TS 開發模式
基礎概念與主要特性
<aside> 💡 TypeScript 是微軟替JavaScript開發的強型別擴充超集合(Superset),向下支援所有JavaScript的內容。 也可以說JS就是TS的一部份,TS透過編譯後仍然會是JS。它強大的地方在於事先能在編譯過程找到可能發生的型別錯誤(Type Error),減少潛在錯誤,能讓開發者透過type/interface更清楚知道當前的事件每個變數都是什麼樣的資料結構。
</aside>
// JS - 執行時才會知道哪裡錯誤
function greet(name) {
return "Hello, " + name.toUpperCase();
}
greet(123); // 執行時才報錯
// TS - 編譯時就能發現錯誤
function greet(name: string): string {
return "Hello, " + name.toUpperCase();
}
greet(123); // 透過run build或者存檔讓Vite編譯時,就會報錯 ❌
Vue的用法釋例:
// JS: 執行時才會知道錯誤
function greet(name) {
return "Hello, " + name.toUpperCase();
}
greet(123); // 執行時才報錯
// TS: 編譯時就能發現錯誤
function greet(name: string): string {
return "Hello, " + name.toUpperCase();
}
greet(123); // 編譯時,即存檔讓vite編譯或者 npm run build 、npm run lint 就會報錯 ❌
// Vue 3.5 中的應用
const userName = ref<string>("John");
const greeting = computed(() => {
return `Hello, ${userName.value.toUpperCase()}`;
});
// userName.value = 123; // ❌ TypeScript 會阻止這個錯誤
// 型別會自動推斷為 string
let message = ref("Hello World");
// 手動明確指定型別
let message: string ="Hello World";
let message = ref<string>("Hello World");
let count: number = 42;
let count = ref<number>(42);