开发者问题收集

如何在 TypeScript 中将动态属性设置为变量?[重复]

2022-03-01
1312

我试图在 TypeScript 中为变量设置一些动态属性。我面临的问题是,当我尝试设置它时,我遇到了错误“uncaught TypeError:无法设置未定义的属性(设置‘varname’)”需要在此变量上设置它,因为它用于在页面上呈现其他数据,我也无法为数据定义模型,因为我不知道将返回多少个属性或名称/值。我如何将动态属性分配给我的变量。Ex 代码

// will be dynamic properties in use case
var tValue = 500
var tName = "donuts"
var tArray = [2, 4, 9, 55];

window.onload = (event) => {
let x;
//  trying to set variables will throw error cannot set properties of undefned
x.tree = tValue;
x.header = tName;
x.time = tArray;
} 

示例 JS Fiddle: https://jsfiddle.net/mtj6L3zq/

3个回答

我认为这会满足您的要求:

let x : {[key: string]: any} = {};

您必须将 x 设置为一个空对象,否则您将尝试访问 undefined

的属性
Mohammad Tourjoman
2022-03-01

只需声明 x 有一个空对象。

您可能还需要一个接口。

interface SomeObject {
 tree: number;
 header: string;
 time: number[];
}

let x: SomeObject = {}
chip
2022-03-01

xundefined ,因为它尚未初始化。因此尝试在 x 上设置属性时会出现错误。

x 初始化为空对象应该可以修复该错误。

// will be dynamic properties in use case
var tValue = 500
var tName = "donuts"
var tArray = [2, 4, 9, 55];

window.onload = (event) => {
let x ={} ;
//  trying to set variables will throw error cannot set properties of 
undefned
x.tree = tValue;
x.header = tName;
x.time = tArray;
console.log(x);
} 

这里 是一个有效示例。

Alvin Saldanha
2022-03-01