Arrays 是否在字典中添加新键?

Arrays 是否在字典中添加新键?,arrays,typescript,dictionary,object,Arrays,Typescript,Dictionary,Object,我想通过循环向字典添加多个键。例如,当我创建一个键时,该键已经有了它的值 我有以下情况: var keys = ['key1', 'key2', 'key3', 'key4'] var dic = {} for (let i = 0; i < keys.length; i++) { const key = keys[i] dic[key] = 'value' + i } 错误详细信息 元素隐式具有“any”类型,因为表达式的类型为 “字符串”不能用于

我想通过循环向字典添加多个键。例如,当我创建一个键时,该键已经有了它的值

我有以下情况:

var keys = ['key1', 'key2', 'key3', 'key4']
var dic = {}

for (let i = 0; i < keys.length; i++) {

    const key = keys[i]
    dic[key] = 'value' + i         
}
错误详细信息

元素隐式具有“any”类型,因为表达式的类型为 “字符串”不能用于索引类型“{}”


如何获取数组键并使用循环值将其分配给字典?

您需要定义
dic的类型

  • 使用
    any
  • 更确切地说
var-dic:Record={}
  • 更加精确
type Key='key1'|'key2'|'key3'|'key4'
变量键:键[]=['key1','key2','key3','key4']

var dic:PartialIt不起作用:哪个代码不起作用?它怎么不起作用?发布一个“不起作用”的最小完整示例,告诉你正在做什么(编译?运行?),告诉你预期会发生什么,然后告诉会发生什么。你想要什么类型的dic?如果您同意将其作为字符串字典,那么将其声明为字符串字典(例如,
var dic:{[k:string]:string}={}
)。请记住,“它不起作用”并不能真正算作创建问题的指南中描述的问题。祝你好运明白了,我现在清楚地说明了TypeScriptjcalz中出现错误的那一行,代码对我来说很有用,我必须学习很多东西。是的,我的问题是,为什么不使用对象并将属性设置为键呢?变量Dic={“一”:“一”,“二”:2}
dic[key] = 'value' + i     
var dic: any = {}
var dic: Record<string, string> = {}
type Key = 'key1' | 'key2' | 'key3' | 'key4'
var keys: Key[] = ['key1', 'key2', 'key3', 'key4']
var dic: Partial<<Record<Key, string>> = {}
const keys = ['key1', 'key2', 'key3', 'key4'] as const; // TS3.4 syntax
type Key = typeof keys[number];
var dic: Partial<Record<Key, string>> = {
  "key1": "123"
}