在上一篇文章有稍微提到建立專案時,可以選擇 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,可以確保型別正確,也能讓程式碼更清楚且能重複使用