typescript - „Variable 'X' kann konstant gemacht werden“, was bedeutet ‚konstant‘?
VStudio oder ReSharper gibt mir den folgenden Vorschlag:
Was bedeutet Konstant in diesem Szenario? Wenn es sich um eine Konstante im aktuellen Methodenumfang handelt, was ist dann der Zweck? Methoden neigen dazu, klein zu sein, und daher sollte es keinen Vorteil gegenüber einer normalen Variablen bieten?
Bitte erleuchte mich
Antwort #1
Es ist nichts Kompliziertes.
Es ist typischerweise besser, const anstelle von let (und definitiv var) zu verwenden, da const das Verstehen des Codes erleichtert, da man nur die anfängliche Zuweisung ansehen muss, um zu wissen, was der Inhalt der Variable ist. Verwenden Sie es so viel wie möglich.
Es sollte beachtet werden, dass, obwohl Konstanten nicht neu zugewiesen werden können, in einigen Fällen ihr Inhalt geändert werden kann, zum Beispiel beim Umgang mit einem Array oder Objekt. Zum Beispiel ist const x=[1]; x[0]=2; vollkommen gültiger Code, aber dies sollte als Anti-Pattern betrachtet werden, weil man erwarten würde, dass eine Konstante konstant bleibt, wodurch das Prinzip der geringsten Überraschung verletzt wird.
Natürlich können Sie ein Array mit einem const aktualisieren, indem Sie einfach eine Kopie des Arrays erstellen und sie einer neuen const zuweisen:
const x = [1];
const x2 = [...x, 2];
Dies hat tatsächlich Leistungsaspekte, die Sie berücksichtigen müssen, wenn Sie mit extrem großen Arrays arbeiten.
Die Schlüsselwörter const und let sind Teil des ECMAScript-2015-Standards. Wenn man also const oder let verwendet und auf ältere ECMAScript-Ziele transpiliert, werden const und let in das alte var transpiliert. Heutzutage unterstützen alle Browser const und es gibt keine wirklichen Leistungsüberlegungen bei der Verwendung des einen oder anderen.
