javascript - Details zu: ReadonlySet?
Bedeutet ReadonlySet eine Menge von ReadOnly-Eigenschaften, genauso wie ReadOnlyCollection in C#? Ich kann dazu nirgendwo ein Dokument finden. Könnten Sie mir bitte mitteilen, wofür ReadonlySet verwendet wird und wie wir dessen Implementierung vornehmen können?
let readonly: Readonly<number> = 1;
let readonlySet: ReadonlySet<number> = ???//
Antwort #1
ReadonlySet ist ein Typ, der Set ähnlich ist, aber keine add/ delete-Methode hat, sodass Elemente nur während der Erstellung hinzugefügt werden können:
const regular: Set<number> = new Set([1,2,3]);
regular.add(4);
const readonly: ReadonlySet<number> = new Set([1,2,3]);
readonly.add(4) //fails, add not a function
Referenz
Im Gegensatz zu dem readonlySet in C#, auf das Sie verwiesen haben, ist Typescripts ReadonlySet tatsächlich keine Klasse/Konstruktor. Es ist nur ein Typ. Da TypeScript Duck Typing hat, ist das Set eine Art Superklasse für ReadonlySet, sodass der Typ "typisiert" werden kann. Dies dient tatsächlich nur der Typprüfung und hat keine Auswirkung zur Laufzeit. Zur Laufzeit ist es einfach ein JavaScript Set.
