Tôi khá mới với TypeScript và tôi muốn biết liệu có tồn tại một cách hay để viết lại mã để tránh lỗi TSLint "truy cập đối tượng qua chuỗi ký tự không được phép" trong đoạn mã sau đây không
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' }
];
Cập nhật : Ở phần cuối, nội dung ở trên sẽ là một phần của tệp tự tạo có hơn 300 ECStruct
giây, vì vậy tôi muốn có định nghĩa lớp (ví dụ ECStruct1
) theo sau là mô tả meta của nó (ví dụ fields['ECStruct1']
).
fields['ECStruct1']
bằngfields.ECStruct1
. Sử dụng ký hiệu dấu chấm để truy cập đạo cụ đối tượng thường được ưu tiên hơn truy cập theo chuỗi ký tự.