मैं टाइपस्क्रिप्ट के लिए बहुत नया हूं और मैं जानना चाहूंगा कि क्या 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। ऑब्जेक्ट प्रॉप्स तक पहुंचने के लिए डॉट नोटेशन का उपयोग करना आमतौर पर स्ट्रिंग शाब्दिक पहुंच से अधिक पसंद किया जाता है।