[Easy] 基本型別與型別註解
1. What are TypeScript Basic Types?
TypeScript 的基本型別有哪些?
TypeScript 提供了多種基本型別,用於定義變數、函式參數和回傳值的型別。
基本型別
// 1. number:數字(整數、浮點數)
let age: number = 30;
let price: number = 99.99;
// 2. string:字串
let name: string = 'John';
let message: string = `Hello, ${name}!`;
// 3. boolean:布林值
let isActive: boolean = true;
let isCompleted: boolean = false;
// 4. null:空值
let data: null = null;
// 5. undefined:未定義
let value: undefined = undefined;
// 6. void:無回傳值(主要用於函式)
function logMessage(): void {
console.log('Hello');
}
// 7. any:任意型別(應避免使用)
let anything: any = 'hello';
anything = 42;
anything = true;
// 8. unknown:未知型別(比 any 更安全)
let userInput: unknown = 'hello';
// userInput.toUpperCase(); // ❌ 錯誤:需要先檢查型別
// 9. never:永遠不會發生的值(用於永遠不會回傳的函式)
function throwError(): never {
throw new Error('Error');
}
// 10. object:物件(不常用,建議使用介面)
let user: object = { name: 'John' };
// 11. array:陣列
let numbers: number[] = [1, 2, 3];
let names: Array<string> = ['John', 'Jane'];
// 12. tuple:元組(固定長度和型別的陣列)
let person: [string, number] = ['John', 30];
2. Type Annotations vs Type Inference
型別註解 vs 型別推斷
型別註解(Type Annotations)
定義:明確指定變數的型別。
// 明確指定型別
let age: number = 30;
let name: string = 'John';
let isActive: boolean = true;
// 函式參數和回傳值
function add(a: number, b: number): number {
return a + b;
}
型別推斷(Type Inference)
定義:TypeScript 根據初始值自動推斷型別。
// TypeScript 自動推斷為 number
let age = 30; // age: number
// TypeScript 自動推斷為 string
let name = 'John'; // name: string
// TypeScript 自動推斷為 boolean
let isActive = true; // isActive: boolean
// 函式回傳值也會自動推斷
function add(a: number, b: number) {
return a + b; // 自動推斷回傳值為 number
}