Keyof 型別運算子

keyof 型別運算子

keyof 運算子接收一個物件型別,並生成其鍵名構成的字串或數字字面量聯合型別。以下型別 Ptype P = "x" | "y" 是相同的型別。

ts
type Point = { x: number; y: number };
type P = keyof Point;
type P = keyof Point
Try

如果該型別具有 stringnumber 索引簽名,keyof 則會返回這些型別。

ts
type Arrayish = { [n: number]: unknown };
type A = keyof Arrayish;
type A = number
 
type Mapish = { [k: string]: boolean };
type M = keyof Mapish;
type M = string | number
Try

請注意,在此示例中,Mstring | number —— 這是因為 JavaScript 物件鍵名總是被強制轉換為字串,所以 obj[0] 始終等同於 obj["0"]

keyof 型別與對映型別(mapped types)結合使用時會非常有用,我們稍後將詳細介紹。

TypeScript 文件是一個開源專案。請透過 傳送 Pull Request 來幫助我們改進這些頁面 ❤

此頁面的貢獻者
OTOrta Therox (3)
RMRoman Mahotskyi (1)
MMMasashi Miyazaki (1)
Ssuica (1)

最後更新:2026 年 3 月 27 日