Escribe para buscar…

Classe

Les classes són una plantilla per crear objectes que encapsulen dades amb codi per treballar amb aquestes dades.

Esta página todavía no se ha traducido — se muestra en su idioma original:Català

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:

ts
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:

ts
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

Fields

Una declaració de camp crea una propietat pública i modificable en una classe:

ts
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.

ts
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:

ts
class Point {
    x = 0
    y = 0
}

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.

ts
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:

ts
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.

TODO