TypeScript的類型系統是其核心特性之一,它為開發者提供了強大的類型檢查和代碼提示功能,有助于提高代碼的可維護性和可讀性。以下是一些TypeScript類型系統的案例分析:
let num = 42; // TypeScript推斷出num的類型為number
let name = 'John'; // TypeScript推斷出name的類型為string
type StringOrNumber = string | number;
let value: StringOrNumber = 42; // 可以賦值為number或string
interface Person {
name: string;
}
interface HasContactInfo {
email: string;
phoneNumber: string;
}
type ContactPerson = Person & HasContactInfo;
let person: ContactPerson = {
name: 'John',
email: 'john@example.com',
phoneNumber: '123-456-7890'
};
function isNumber(value: any): value is number {
return typeof value === 'number';
}
let value: any = 42;
if (isNumber(value)) {
console.log(value.toFixed(2)); // TypeScript知道value現在是number類型
}
function identity<T>(arg: T): T {
return arg;
}
let result = identity<string>('Hello'); // TypeScript知道result的類型為string
type MyString = string;
let myString: MyString = 'Hello'; // TypeScript知道myString的類型為string
interface StringArray {
[index: number]: string;
}
let names: StringArray = ['Alice', 'Bob', 'Charlie'];
let firstName: string = names[0]; // TypeScript知道firstName的類型為string
type ReadonlyStringArray = {
readonly [index: number]: string;
};
let readonlyNames: ReadonlyStringArray = ['Alice', 'Bob', 'Charlie'];
readonlyNames[0] = 'David'; // Error: Cannot assign to read only property '0' of object 'ReadonlyStringArray'...
這些案例展示了TypeScript類型系統的一些基本用法和功能。通過合理地使用這些特性,你可以編寫出更健壯、更易于維護的代碼。