TypeScript中的 typeof 優雅的用法 | TypeScript
typeof 允許開發人員獲取變量或表達式的類型,在 TypeScript 中,通常會先寫類型,然後宣告時再附上定義的型別, typeof 可以讓複雜的物件直接轉化出型別,讓我們的定義型別可以更優雅
1: 獲取變量的類型
在 TypeScript 中, typeof 可以用於獲取變量的類型。讓我們考慮一個簡單的例子:
typeof x 用於捕獲變量 x 的類型。
因此,y 的類型變為 number。
這個功能在你想要在程式碼中保持類型一致性的情況下非常有用。
let x = 10;
let y: typeof x; // y 的類型是 number
2: 獲取類或構造函數的類型
除了變量, typeof 還可以應用於類或構造函數,以獲取它們的類型。考慮以下例子:
在這裡,typeof MyClass 用於捕獲類 MyClass 的類型。
請注意,這不會實例化類;相反,它提供了類本身的類型信息。
變量 z 將具有 MyClass 的類型,而不創建實例。
class MyClass {
name: string;
age: number;
}
let z: typeof MyClass; // z 的類型是 typeof MyClass,表示類的類型
3: 獲取物件的類型
typeof 還可以用於獲取物件的類型,如下例所示:
在這種情況下,typeof obj 捕獲物件 obj 的類型。
結果的類型基於物件的結構,不包括實際值。
在處理複雜物件的數據結構時,這會特別有用。
let obj = { foo: "bar" };
let objType: typeof obj; // objType 的類型是 { foo: string }
Tags