저는 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' }
];
업데이트 : 마지막에 위의 내용은 300 ECStruct
초가 넘는 자체 생성 파일의 일부가 될 것이므로 클래스 정의 (예 ECStruct1
:)와 메타 설명 (예 :)을 사용하고 싶습니다 fields['ECStruct1']
.
fields['ECStruct1']
와 함께fields.ECStruct1
. 점 표기법을 사용하여 객체 소품에 액세스하는 것이 일반적으로 문자열 리터럴 액세스보다 선호됩니다.