# 🏅 Day 2 - 原始型別、型別註釋、型別推斷 ## 題目一:原始型別介紹 在 TypeScript 中,有幾種原始型別可以用來表示不同種類的資料。以下是幾個常見的原始型別: 1. 字串(string):用來表示文字型別。 2. 數字(number):用來表示數值的型別,可以是整數或浮點數。 3. 布林(boolean):用來表示真假值的型別,只有兩個值:`true` 和 `false`。 4. any:用來表示任意型別的型別,可以接受任何值。 ### 程式實做題 1. 請使用字串型別宣告一個名為 `name` 的變數,並將其設定為你的名字。 2. 請使用數字型別宣告一個名為 `age` 的變數,並將其設定為你的年齡。 3. 請使用布林型別宣告一個名為 `isStudent` 的變數,並將其設定為你是否是學生(是為 `true`,否為 `false`)。 4. 請使用 any 型別宣告一個名為 `data` 的變數,並將其設定為任意值。 ![image](https://hackmd.io/_uploads/BkrFCVZKp.png) # 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. 否 :::success B 否 ::: 2. 型別推斷基於什麼來推斷變數的型別? - A. 初始化值 - B. 函式參數 :::success A 初始化值 ::: 3. 型別推斷可以幫助我們省略哪些型別註釋? - A. 字串型別註釋 - B. 數字型別註釋 - C. 函式型別註釋 - D. 所有型別註釋 :::success D 所有型別註釋 ::: ### 開發題目: 1. 請使用型別註釋宣告一個變數 `score`,並將其設置為數字型別,初始值為 80。 2. 請使用型別推斷宣告一個變數 `message`,並將其設置為字串型別,初始值為 "Hello, TypeScript!"。 3. 請使用型別註釋宣告一個變數 `fullName`,並將其設置為字串型別,初始值為你的姓名。 ![image](https://hackmd.io/_uploads/HJnLySZYp.png) ### 面試題(選做) 1. 你會如何判斷何時用型別推論或型別註釋? :::success 型別推論:初始值可清晰推斷 型別註釋:初始值無法清晰推斷,且複雜時 ::: <!-- 解答: let name: string = "洧杰"; let age: number = 18; let isStudent: boolean = false; let data: any = "任意值"; 單選題目:B、A、D 開發題目: let score: number = 80; let message = "Hello, TypeScript!"; let fullName: string = "洧杰"; -->