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...
returnedVal
和 CrudTypes.CREATE
的类型是什么? enums.d.ts
?
The code for keyMirror 将 属性 键分配给值:
for (key in obj) {
if (obj.hasOwnProperty(key)) {
ret[key] = key;
}
}
因此returnVal
和CrudTypes.CREATE
的类型应该是string
.
请注意 TypeScript 中的 Object.keys(...)
returns string[]
并且以下代码为所有键输出 string
:
var obj = { 1: null, "2": null };
for (var key in obj) {
console.log(typeof key);
}
我没有将 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...
returnedVal
和 CrudTypes.CREATE
的类型是什么? enums.d.ts
?
The code for keyMirror 将 属性 键分配给值:
for (key in obj) {
if (obj.hasOwnProperty(key)) {
ret[key] = key;
}
}
因此returnVal
和CrudTypes.CREATE
的类型应该是string
.
请注意 TypeScript 中的 Object.keys(...)
returns string[]
并且以下代码为所有键输出 string
:
var obj = { 1: null, "2": null };
for (var key in obj) {
console.log(typeof key);
}