将字符串数组的值分配给打字稿中对象的属性

分享于2022年07月17日 angular typescript 问答
【问题标题】:将字符串数组的值分配给打字稿中对象的属性(assigning values of string array to properties of an object in typescript)
【发布时间】:2022-01-26 13:02:27
【问题描述】:

我有一个搅拌数组: values: string['myName', 'myLastname', 'myAge'] 并希望将每个值分配给对象的每个属性: myModel={name:'', lastname:'', age:''} 点对点。 我尝试将其编码为:

let i =0;
Object.keys(this.myModel).forEach((key) => {
    this.myModel[key] = this.values[i];
    i++;
  });

但我得到错误...,怎么办?

  • 您能分享一下您遇到的错误吗?
  • 请提供 minimal reproducible example ,清楚地表明您面临的问题。理想情况下,有人可以将代码放入像 The TypeScript Playground (link here!) 这样的独立 IDE 中,然后立即着手解决问题,而无需首先重新创建它。所以应该没有伪代码、拼写错误、不相关的错误或未声明的类型或值。

【解决方案1】:

你不需要声明和使用 i 作为索引,对象键上的 forEach 可以用第二个参数来做:

Object.keys(this.myModel).forEach((key,i) => {
    this.myModel[key] = this.values[i];
});

另外,不要这样做: values: string['myName', 'myLastname', 'myAge'];
values: string[] = ['myName', 'myLastname', 'myAge']; 一起去

除此之外,您的代码似乎确实有效 - 尽管它可能取决于您使用的 IDE 是否会引发错误。因此,请尝试这些更改。