Warum können wir nicht definieren, ein const-Feld in TypeScript Klasse, und warum static readonly funktioniert nicht?
Möchte ich const
Schlüsselwort in meinem Programm.
export class Constant {
let result : string;
private const CONSTANT = 'constant'; //Error: A class member cannot have the const keyword.
constructor () {}
public doSomething () {
if (condition is true) {
//do the needful
}
else
{
this.result = this.CONSTANT; //NO ERROR
}
}
}
Question1: warum die Schüler nicht haben, wird das const-Schlüsselwort in typescript?
Question2: Wenn ich
static readonly CONSTANT = 'constant';
zuweisen und es in
this.result = this.CONSTANT;
zeigt es Fehler. warum ist das so?
Ich habe diesen Beitrag Wie implementieren Sie die Klasse Konstanten, die in typescript?, aber nicht bekommen, die Antwort, warum Typoskript ist die Darstellung dieser Art von Fehler mit const
Stichwort.
InformationsquelleAutor Aditya | 2017-10-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Durch design. Unter anderem auch, weil EcmaScript6 nicht entweder.
Diese Frage ausdrücklich beantwortet : 'const' Schlüsselwort in Typoskript
Wenn Sie
static
, dann können Sie nicht finden Sie Ihre Variablen mitthis
, aber mit dem Namen der Klasse !Warum ? Da
this
bezieht sich auf die Instanz der Klasse, zu der das Feld bzw. die Methode gehört. Für eine statische variable /Methode, Sie gehört nicht zu einer beliebigen Instanz, sondern der Klasse selbst (schnell vereinfacht)InformationsquelleAutor Pac0