Campi, costruttori, parameter properties, public, protected, private e #private, readonly, abstract e implements. Verifica chi può raggiungere ogni membro in una matrice live.
Una classe TypeScript è una classe JavaScript con campi tipizzati e regole di accesso. I membri public sono raggiungibili ovunque, quelli protected dentro la classe e nelle sue sottoclassi, quelli private solo dentro la classe. Questi tre controlli esistono solo in fase di compilazione. Un campo #name è privato anche nel JavaScript in esecuzione, e readonly blocca le scritture dopo il costruttore.
Le parole chiave delle classi e cosa fanno
Scegli un modificatore e la matrice mostra cinque modi in cui il codice potrebbe raggiungere quel membro, con il risultato di tsc per ciascuno. La riga con le parentesi quadre è quella che sorprende: i modificatori di compilazione si possono aggirare con una chiave stringa, un campo # invece no.
private è un controllo di TypeScript. Sparisce dall'output, e obj["secret"] compila comunque e legge il valore. Un campo #secret è un campo privato JavaScript: nessuna chiave stringa lo raggiunge, e il codice fuori dalla classe non può leggerlo a runtime.
Una scorciatoia che dichiara e assegna un campo a partire da un parametro del costruttore. Scrivere constructor(private readonly id: string) {} crea un campo id private readonly senza bisogno di corpo. Il prefisso può essere public, protected, private o readonly.
No. implements verifica solo che la classe finita rispetti l'interfaccia. I parametri dei metodi hanno comunque bisogno delle proprie annotazioni; ometterne una in strict mode genera un errore di any implicito, anche se l'interfaccia ne indica già il tipo.
strictPropertyInitialization, che strict attiva, richiede che ogni campo dichiarato sia impostato nella dichiarazione o nel costruttore. Dagli un valore, rendilo opzionale, oppure aggiungi ! dopo il nome se qualcos'altro lo imposta prima dell'uso.
Usa una classe astratta quando le sottoclassi devono condividere codice reale, come un metodo che chiama un hook astratto. Un'interfaccia non contiene codice e una classe può implementarne diverse, quindi è adatta a descrivere forme.
Il costruttore dichiara due campi nella sua lista di parametri. La cache è un campo #, quindi niente al di fuori della classe può leggerla o svuotarla.
describe è codice condiviso; area è l'hook che ogni forma deve fornire. Con noImplicitOverride attivo, la parola chiave override è obbligatoria su area in Circle.
L'interfaccia garantisce che la classe abbia send con la forma giusta, ma il parametro ha comunque bisogno della propria annotazione di tipo.
Nessuna restrizione. Omettere il modificatore significa la stessa cosa.
Dentro i metodi di Account
Dentro un metodo di Savings
Dall'esterno, con il punto
Dall'esterno, con una chiave stringa
Dall'esterno, assegnando un nuovo valore
Aperto alla classe e alle sue sottoclassi. Una chiave stringa supera comunque il controllo, perché è solo una regola di tipo.
Dentro i metodi di Account
Dentro un metodo di Savings
Dall'esterno, con il punto
Dall'esterno, con una chiave stringa
Dall'esterno, assegnando un nuovo valore
Chiuso anche alle sottoclassi, ma solo durante il type checking. La forma con le parentesi quadre compila e il valore è leggibile a runtime.
Dentro i metodi di Account
Dentro un metodo di Savings
Dall'esterno, con il punto
Dall'esterno, con una chiave stringa
Dall'esterno, assegnando un nuovo valore
Un campo privato JavaScript. Nessuna chiave stringa lo nomina, quindi ogni accesso dall'esterno fallisce, e il motore impone la stessa regola a runtime.
Dentro i metodi di Account
Dentro un metodo di Savings
Dall'esterno, con il punto
Dall'esterno, con una chiave stringa
Dall'esterno, assegnando un nuovo valore
Chiunque può leggerlo; nessuno può assegnarlo dopo la costruzione, nemmeno i metodi della classe stessa.
Dentro i metodi di Account
Dentro un metodo di Savings
Dall'esterno, con il punto
Dall'esterno, con una chiave stringa
Dall'esterno, assegnando un nuovo valore
Scegli un modificatore
Accesso a un membro {v}
Usato da
Codice
Risultato di tsc
Compila
Inizia gratis · Nessuna carta di credito richiesta