TypeScript keyof 用法

admin發表於2017-08-05

keyof是索引型別查詢操作符。

假設T是一個型別,那麼keyof T產生的型別是T的屬性名稱字串字面量型別構成的聯合型別。

特別說明:T是資料型別,並非資料本身。

程式碼例項如下:

[typescript] 純文字檢視 複製程式碼
interface Itest{
  webName:string;
  age:number;
  address:string
}
type ant=keyof Itest;

程式碼在編輯器截圖如下:

a:3:{s:3:\"pic\";s:43:\"portal/201809/13/094429e1mz12zt12w5o00n.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

如果T是一個帶有字串索引簽名的型別,那麼keyof T是string型別,並且T[string]為索引簽名的型別。

程式碼例項如下:

[typescript] 純文字檢視 複製程式碼
interface Map<T> {
  [key: string]: T;
}
let keys: keyof Map<number>;//string
let value: Map<number>['antzone'];//number

在編輯器截圖如下:

a:3:{s:3:\"pic\";s:43:\"portal/201809/13/094434b3tp0f33li4gi1l0.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

特別說明:T[U]是索引訪問操作符;U是一個屬性名稱。

關於索引型別查詢操作符和索引訪問操作符可以參閱TypeScript 索引型別一章節。

相關文章