簡體   English   中英

TypeScript中定義的對象文字鍵的類型是什么?

[英]What is the type of an object literal key as defined in TypeScript?

我不是使用TypeScript作為此應用程序的主要語言,而是將JetBrains的WebStorm與JSDocs一起用作類型提示輔助。 我還使用keyMirror實用程序來創建准枚舉對象文字。

給定以下內容:

//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

keyMirror 的代碼將屬性鍵分配給以下值:

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

因此, returnValCrudTypes.CREATE的類型應為string

請注意, Object.keys(...)在TypeScript中返回string[] ,並且以下代碼為所有鍵輸出string

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM