2015-06-11 58 views
1

我沒有使用TypeScript作爲此應用程序的主要語言,而是作爲JetBrains的WebStorm和JSDocs的類型提示協助。我還使用keyMirror實用程序來創建準枚舉對象文字。TypeScript中定義的對象文字鍵的類型是什麼?

假定下列:

//enums.js 
var keyMirror = require('keyMirror'); 
module.exports = { 
    CRUDVerbs: keyMirror({ //keymirror mirrors the key to value in objects 
     CREATE: null, 
     READ: null, 
     UPDATE: null, 
     DESTROY: null 
    } 
} 

//app.js 
var enums = require('enums.js'); 
var CrudTypes = enums.CRUDVerbs; 
/** @type {??????????} **/ 
var returnedVal = functionFromElsewhere(); 
if(returnedVal === CrudTypes.CREATE) { 
//code 
} //..etc... 

什麼是returnedValCrudTypes.CREATE的類型,例如在定義它的目的enums.d.ts

回答

0

The code爲keyMirror分配屬性鍵的值:

for (key in obj) { 
    if (obj.hasOwnProperty(key)) { 
     ret[key] = key; 
    } 
} 

因此,returnValCrudTypes.CREATE的類型應該是string

注意Object.keys(...)回報string[]的打字稿及所有鍵下面的代碼輸出string

var obj = { 1: null, "2": null }; 
for (var key in obj) { 
    console.log(typeof key); 
} 
+0

非常感激。我這麼認爲,但不確定 - 我來自嚴格類型的C&C類語言,所以我在精神上記錄了一些事情時遇到了一些麻煩。 –

相關問題