Estoy tratando de establecer algunas propiedades dinámicas en una variable en mecanografiado. El problema al que me enfrento es que cuando trato de configurarlo me encuentro con el error "Error de tipo no detectado: no se pueden establecer propiedades de undefined (estableciendo 'varname')". datos en la página, tampoco puedo definir un modelo para los datos ya que no sé cuántas propiedades se devolverán o su nombre/valores. ¿Cómo puedo asignar propiedades dinámicas a mi variable. Ex código
// 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; }Ejemplo JS Fiddle: https://jsfiddle.net/mtj6L3zq/
Simplemente declare que x tiene un objeto vacío.
Probablemente también quieras una interfaz.
interface SomeObject { tree: number; header: string; time: number[]; } let x: SomeObject = {}Creo que esto hará lo que quieras:
let x : {[key: string]: any} = {};
Tendrá que establecer x en un objeto vacío; de lo contrario, estaría intentando acceder a las propiedades de undefined
x no está undefined ya que no está inicializado. de ahí el error al intentar establecer la propiedad en x .
Inicializar x a un objeto vacío debería corregir el error.
// 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); }Aquí hay un ejemplo de trabajo.