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

How to Set Dynamic Properties to Variable in TypeScript?

我正在尝试将一些动态属性设置为打字稿中的变量。我面临的问题是,当我尝试设置它时,我 运行 出现错误“未捕获的 TypeError:无法设置未定义的属性(设置 'varname')” 它需要在此变量上设置,因为它用于在页面上呈现一些其他数据,我也无法为数据定义模型,因为我不知道将返回多少属性或那里 name/values。如何为我的变量分配动态属性。 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/

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

您可能还需要一个界面。

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

let x: SomeObject = {}

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);
} 

Here 是一个工作示例。

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

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

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

的属性