---
# System prepended metadata

title: "\U0001F3C5 Day 2 - 原始型別、型別註釋、型別推斷"
tags: [TypeScript 直播班-2025]

---

# 🏅 Day 2 - 原始型別、型別註釋、型別推斷

## TypeScript 原始型別介紹

在 TypeScript 中，有幾種原始型別可以用來表示不同種類的資料。以下是幾個常見的原始型別：

1. 字串（`string`）：用來表示文字型別。
2. 數字（`number`）：用來表示數值的型別，可以是整數或浮點數。
3. 布林（`boolean`）：用來表示真假值的型別，只有 `true` 和 `false` 兩種值。
4. `any`：用來表示任意型別的型別，可以接受任何型別的值。

## TypeScript 型別註釋與型別推斷

TypeScript 型別註釋與型別推斷是 TypeScript 中重要的概念。

**型別註釋**是在程式碼中明確指定變數或函式的型別。透過型別註釋，我們可以告訴編譯器變數的型別，以提供更好的靜態型別檢查。

**型別推斷**是 TypeScript 的一項功能，它可以自動推斷變數的型別，基於變數的初始化值和它在程式碼中的使用方式。當未明確指定型別時，型別推斷可以幫助我們省略冗長的型別註釋。

以下是兩個範例程式碼：

**範例程式碼 1：使用型別註釋**

```tsx
// 型別註釋
let name: string;
let age: number;

name = "John";
age = 25;

console.log("Name:", name);
console.log("Age:", age);
```

**範例程式碼 2：使用型別推斷**

```tsx
// 型別推斷
let message = "Hello, TypeScript!";
let count = 10;

console.log(message);
console.log(count);
```

### 單選題：

1. 型別註釋是強制一定要加上的嗎？
    - A. 是
    - B. 否
2. 型別推斷基於什麼來推斷變數的型別？
    - A. 初始值
    - B. 函式參數
3. 型別推斷可以幫助我們省略哪些型別註釋？
    - A. 字串型別註釋
    - B. 數字型別註釋
    - C. 函式型別註釋
    - D. 所有型別註釋
4. 下列哪一個宣告會導致 TypeScript 報錯？
```tsx
A. const name: string = "Andy";
B. const age = 25;
C. const isActive: boolean = "true";
D. const isCompleted: any = false;
```
5. 若宣告 `let speed = 10;` ，TypeScript 會自動推斷 `speed` 的型別是？
    - A. string
    - B. number
    - C. boolean

### 實作題：

1. 請使用型別註釋宣告一個變數 `fullName`，並將其設置為字串型別，初始值為你的姓名。
2. 請使用型別推斷宣告一個變數 `score`，並將其設置為數字型別，初始值為 80。
3. 將下列程式修改成能夠正確執行：
```tsx
let age;
age = "25";
console.log(age + 5); // 該行維持不變
```

<!-- 解答： 
單選題：B、A、D、C、B

實作題：
1. let fullName: string = "王小明";
2. let score = 80;
3. 
let age: number;
age = 25;
console.log(age + 5);
-->