在上一篇文章有稍微提到建立專案時,可以選擇 JavaScript (JS) 或 TypeScript (TS) ,這篇主要會介紹兩者的差異,以及如何去做選擇、使用
| JavaScript | TypeScript | |
|---|---|---|
| 型別 | 動態型別 | 靜態型別 | 
| 執行方式 | 直譯式 | 編譯成JS | 
| 錯誤檢查 | 執行時才發現錯誤 | 編譯時就可發現錯誤 | 
| 學習成本 | 較低 | 較高(需多學習型別) | 
| 適用情境 | 小型、快速原型開發專案 | 大型、複雜、多人合作專案 | 
//變數
let age = 20;
let name = "苦力怕";
//函式
function add(a, b) {
  return a + b;
}
//props元件
function MyComponent({ user }) {
   return <p>{user.name} is {user.age}</p>
}
//變數
let age: number = 20;
let name: string = '苦力怕';
//函式
function add(a: number, b: number): number {
  return a + b;
}
//props元件
interface User {
  name: string;
  age: number;
}
function MyComponent({ user }: { user: User }) {
   return <p>{user.name} is {user.age}</p>
}
// **定義 User 物件的介面**
interface User {
  name: string;
  age: number;
}
// **定義 props 的介面**
function MyComponent({ user }: { user: User }) {
  return (
    <div>
      <h2>姓名: {user.name}</h2>
      <p>年齡: {user.age}</p>
    </div>
  );
}
在 React 中使用 interface 定義 props,可以確保型別正確,也能讓程式碼更清楚且能重複使用