Как переписать код, чтобы избежать TSLint «доступ к объекту через строковые литералы»

Я довольно новичок в TypeScript, и я хотел бы знать, существует ли хороший способ переписать код, чтобы избежать ошибки TSLint "доступ к объекту через строковые литералы запрещен" в следующем коде

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' }
];

Обновить: В конце вышеприведенное содержимое будет частью самогенерируемого файла с более чем 300ECStructs, поэтому я хотел бы получить определение класса (например,ECStruct1) с последующим мета-описанием (например,fields['ECStruct1']).

Ответы на вопрос(4)

Ваш ответ на вопрос