如何在 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
x
是
undefined
,因为它尚未初始化。因此尝试在
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