Ich hätte gerne eine Eigenschaft in meiner Klasse, die lesbar ist, aber nicht direkt durch Code außerhalb der Klasse geändert werden kann. Im Prinzip entspricht dies dem Zurückgeben einer Konst-Referenz auf ein Member aus einer Methode in C++.Eine Eigenschaft, die außerhalb der Klasse schreibgeschützt ist, aber für Klassenmitglieder schreibgeschützt ist
Schreiben etwas in diese Richtung:
class test {
private readonly x_ = new Uint8Array([0, 1, 2]);
public x() { return this.x_;}
}
nicht funktioniert, weil Code wie die folgenden noch kompiliert:
let a = new test();
a.x()[0] = 1;
Was ist der richtige Weg, um dies zu erreichen?
Diese fast funktioniert, aber das Problem ist, dass es Typinformationen verliert ... Das heißt, ich kann nicht 'ax' zu' uniformMatrix4fv' passieren, weil die Typoskript-Compiler sieht es als 'ReadonlyTypedArray' anstelle von 'Float32Array' –
nicebyte
@nicebyte Aber ein typisiertes Array' Uint8Array' kann mutiert werden. Wenn eine Funktion einen Parameter vom Typ 'Float32Array' benötigt, kann sie mutieren. – Paleo