Classe
Les classes són una plantilla per crear objectes que encapsulen dades amb codi per treballar amb aquestes dades.
Introducció
Section titled “Introducció”Pots crear una declaració de classe utilitzant la paraula clau class
, seguida del nom de la classe i després un bloc amb parelles de claus {}
, com es mostra en el següent codi:
class Person {}
Aquest fragment crea una nova classe anomenada Person
.
Després pots crear una nova instància de la classe Person
utilitzant la paraula clau new
seguida del nom de la teva classe i en acabat una llista de paràmetres buida (que pot ser omesa), com es mostra en el següent codi:
class Person {}
const john = new Person()
Pots pensar en la classe com una plantilla per crear objectes amb una forma determinada, mentre que les instàncies són els objectes mateixos, creats a partir d’aquesta plantilla.
Members
Section titled “Members”Fields
Section titled “Fields”Una declaració de camp crea una propietat pública i modificable en una classe:
class Point { x: number = 0 y: number = 0}
Els camps han de tenir inicialitzadors; aquests s’executaran automàticament quan la classe sigui instanciada.
L’operador new
et permet crear una instància d’un tipus d’objecte definit per l’usuari o d’un dels tipus d’objecte integrats que té una funció constructora.
const point = new Point()point.x = 10
console.log(point)
// Expected output: Point { x: 10, y: 0 }
Igual que amb const
, let
, l’inicialitzador d’una propietat de classe s’utilitzarà per inferir el seu tipus:
class Point { x = 0 y = 0}
Constructors
Section titled “Constructors”El mètode constructor
és un mètode especial d’una classe per crear i inicialitzar una instància d’objecte d’aquesta classe.
class Person { name: string
constructor() { this.name = "John Doe" }}
const mary = new Person()
console.log(mary.name)
// Expected output: "John Doe"
Els constructors de classe són molt similars a les funcions.
Pots afegir paràmetres amb anotacions de tipus, valors per defecte i sobrecàrregues:
class Person { name: string
constructor(name: string = "John Doe") { this.name = name }}
const mary = new Person("Elizabeth Feinler")
console.log(mary.name)// Expected output: "Elizabeth Feinler"
Hi ha només unes poques diferències entre les signatures del constructor de classe i les signatures de funció:
-
Els constructors no poden tenir paràmetres de tipus - aquests pertanyen a la declaració de classe externa, que aprendrem més endavant.
-
Els constructors no poden tenir anotacions de tipus de retorn - el tipus d’instància de classe és sempre el que es retorna.
El contingut d'aquest lloc web té llicència CC BY-NC-ND 4.0.
©2022-2025 xtec.dev