javascript - Hur man får åtkomst till ett objekts värde i TypeScript med en strängindex


Jag har ett objekt och jag vill komma åt objektets värde med ett strängindex, men när jag försöker göra det i TypeScript får jag fel.

// Declared Globally
const Orientation = {
    value: () => 0,
    'next_value': () => someFunction.anotherFunction.sqrt(),
};

// _textValue type declared 
_textValue : string;

// Declared inside constructor
this._textValue = 'next_value';

// value used inside a function
_getValue(){
    const newValue = Orientation[this._textValue]();
 }

Och där jag använder Orientation[this._textValue]();, får jag felet som:

Element har implicit typen 'any' eftersom ett uttryck av typen 'any' inte kan användas för att indexera typen '{ value:() => number; 'next_value':() => number; }'.ts(7053)

Någon idé om hur man löser detta?

Svar #1

main.ts

export {}

interface IDictionary {
    [index: string]: string;
}
var params = {} as IDictionary;

//array with string index 
params = {a: "Bhavesh",b: "Bond", c: "Urmil"};

//get array data using string index
var getData = params['b']; // output: Bond
var getData = params['B']; // output: undefined

console.log(getData);

Jag tror att ditt problem kommer att lösas i exemplet ovan. Tack..!