Soy bastante nuevo en TypeScript y me gustaría saber si existe una buena manera de reescribir el código para evitar el error TSLint "el acceso al objeto a través de cadenas literales no está permitido" en el siguiente código
interface ECType
{
name: string;
type: string;
elementType?: string;
}
export var fields: { [structName: string]: Array<ECType>; } = { };
class ECStruct1 {
foo: string;
bar: number;
baz: boolean;
qux: number;
quux: number;
corge: ECStruct2[];
grault: ECStruct2;
constructor() {
...
}
}
fields['ECStruct1'] = [
{ name: 'foo', type: 'string' },
{ name: 'bar', type: 'int' },
{ name: 'baz', type: 'bool' },
{ name: 'qux', type: 'long' },
{ name: 'quux', type: 'ulong' },
{ name: 'corge', type: 'array', elementType: 'ECStruct2' },
{ name: 'grault', type: 'ECStruct2' }
];
Actualización : Al final, el contenido anterior será parte de un archivo autogenerado con más de 300 ECStructs, por lo que me gustaría tener la definición de la clase (por ejemplo ECStruct1) seguida de su metadescripción (por ejemplo fields['ECStruct1']).
fields['ECStruct1']porfields.ECStruct1. Por lo general, se prefiere el uso de la notación de puntos para acceder a los accesorios de los objetos al acceso literal de cadena.