Gracias por la ayuda de antemano. Estoy trabajando en TypeScript, supongo que cualquier solución JS también funciona. Me gustaría hacer algo como esto:
class ExcelData { 'Id 1': items[0].id, 'Quantity 1': items[0].quantity, 'Id 2': items[1].id, 'Quantity 2': items[1].quantity //... 'Id 40': items[39].id, 'Quantity 40': items[39].quantity, }Estoy tratando de usarlo con el módulo 'xlsx' para exportar datos del proyecto a una hoja de Excel. Es necesario para este módulo que sea una clase, en lugar de varias matrices. Podría escribirlo manualmente, pero hay 7 propiedades para cada elemento y sería un código muy feo. También es posible que luego me pidan que agregue más elementos. Si fuera Python, podría hacer algo como esto porque las clases y los diccionarios son cosas diferentes:
excel_data = {} for i in range (40): excel_data['Id '+ str(i)] = items[i].id excel_data['Quantity '+ str(i)] = items[i].quantity¿Qué es una alternativa de TypeScript?
¡Gracias!
Es posible que esté buscando firmas de índice . En JavaScript/Typescript, los objetos son más comparables a los diccionarios de Python que a las clases, y para almacenes de datos como este, los recomendaría.
Puede crear el almacén de datos que desee y acceder a sus propiedades de la siguiente manera:
interface ExcelData { [property: string]: string | number | undefined; } const data: ExcelData = {}; data.id1 = "123-420"; data.quantity1 = 69; Sin embargo, parece extraño querer tener "Quantity-*" como propiedad. Una estructura que usa ID para buscar y establecer cantidades se vería así:
interface ExcelData { [id: string]: number | undefined; } const data: ExcelData = {}; data.someId = 69;Por último, puede hacer lo que está tratando de hacer con una clase así:
class MyClass { [property: string]: string | number | undefined; } const myInstance = new MyClass(); myInstance.id1 = "123-420"; myInstance.quantity1 = 69;