Ich bin ziemlich neu in TypeScript, und ich habe versucht, einige Code neu zu gestalten.Typescript: einen Parameter oder eine Eigenschaft als einen der Schlüssel in einem bekannten Objekt deklarieren
Bedenken Ich habe ein Objekt als solche definiert:
const Operators = {
equal: '=',
not_equal: '!=',
less: '<',
less_or_equal: '<=',
greater: '>',
greater_or_equal: '>=',
contains: '~'
};
Und dann habe ich eine Klasse definiert als solche:
class Query {
// I want to limit this to the keys defined in Operator
operator: string;
constructor(operator: string) {
this.operator = operator;
}
getOperatorValue: string {
return Operators[this.operator];
}
}
Wie kann ich, dass der Parameter „Operator“ sein erzwingen ein die Schlüssel von Operators
?
bekomme ich folgende Fehler gegen die Linie innerhalb getOperatorValue()
:
Error: TS7017:Element implicitly has an 'any' type because type '{ equal: string; not_equal: string; less: string; less_or_equal: string; greater: string; greater...' has no index signature.
Das Typoskript 2.4.2 verwendet wird.
Sie das Problem, indem Sie 'const Operatoren lösen könnte ' – jonrsharpe