wäre meine Vermutung, dass dies aus Gründen der Einheitlichkeit und die Nähe zum JavaScript ist.
Genau wie es üblich Ihre Methode Argumente zu nennen (auch in Interfaces), alle Argumente zu Methoden, Konstrukteuren, Funktionen und Indexer in TS muss name: type
oder name
des Formats sein (was bedeutet, name: any
). (Version der Geschichte vereinfacht, aber ich bin sicher, dass Sie mir bekommen)
Seit Namen und Typen in unterschiedlichen Namensräumen in Typoskript leben, ein Argument der Form string
mehrdeutig sein würde. Denken Sie daran, dass TypeScripts Mission darin besteht, nahe bei JavaScript zu bleiben, daher wäre die Interpretation des oben genannten Arguments vom Typ string
inakzeptabel und stellt sich in der Tat als string: any
dar.
Des Weiteren, während Indexer könnte eine Ausnahme sein, weil sie nur von Typen string
oder number
sein kann, ist dies nicht immer der Fall ist (0,8 TS any
erlaubt), so könnte ein weiterer Grund, die Migration auf 0,9 zu erleichtern.
Ich nehme an, dass "etwas" den tatsächlichen Schlüssel zum Durchsuchen des Wörterbuchs statt nur seinen Typ dokumentiert. Ein Standardname von "key" sollte jedoch wahrscheinlich in 99% der Situationen funktionieren ... Es gibt einige Fälle (z. B. '' [styleName: string]: string''), bei denen ein benutzerdefinierter Name mehr Dokumentation liefern kann. –