Kurze Antwort: a[i]
hat den Typ any
, nicht string
.
Lange Antwort: a
hat den Typ string[]
. In TypeScript führen Objekte vom Typ T[]
, die von einem number
indiziert werden, zu einem Wert vom Typ T
, aber die Indexierung durch string
führt zu any
. Werte vom Typ any
können frei in einen anderen Typ konvertiert werden.
Warum?
Wenn Sie ein Array mit einer Zeichenfolge indexieren, kann der Compiler einfach nicht vorhersagen, was passieren wird, und Sie bleiben bei any
hängen. Überlegen Sie:
Wenn Sie wirklich sicher sind, dass niemand mit Ihrem Objekt beschäftigt ist, oder wenn Sie Indizes aus einer bekanntermaßen sicheren Menge von Zeichenfolgenwerten verwenden, können Sie eine Indexierungsart schreiben. In dem Fall, in dem Sie mit einer Zeichenfolge indexieren, verwenden Sie wahrscheinlich lieber ein Objekt als ein Array:
%Vor%Tags und Links typescript