如何在 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 = {}
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);
}
Here 是一个工作示例。
我认为这会满足您的要求:
let x : {[key: string]: any} = {};
您必须将 x 设置为一个空对象,否则您将尝试访问 undefined
的属性
我正在尝试将一些动态属性设置为打字稿中的变量。我面临的问题是,当我尝试设置它时,我 运行 出现错误“未捕获的 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 = {}
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);
}
Here 是一个工作示例。
我认为这会满足您的要求:
let x : {[key: string]: any} = {};
您必须将 x 设置为一个空对象,否则您将尝试访问 undefined