javascript - Kuinka määritellä funktio rajapinnassa Angularissa?


Minulla on seuraava ongelma, johon en löytänyt toimivaa ratkaisua. Minulla on rajapinta Angular-sovelluksessani:

export interface Person {
    forename: string;
    surname: string;
}

Miten minun pitäisi määritellä funktio nimeltä getFullName() seuraavalla toteutuksella:

getFullName(){
  return this.forename + " " + this.surname;
}

Yritin sitä suoraan käyttöliittymässä funktion kanssa avaimena, mutta se ei toiminut...

Vastaus #1

Voit käyttää funktio-allekirjoitusta () => string edustamaan funktiota, joka ei ota argumentteja ja palauttaa merkkijonon.

export interface Person {
    forename: string;
    surname: string;
    getFullName: () => string;
}

Et voi kuitenkaan määritellä toteutusta rajapinnassa.

Luoaksesi luokan, joka toteuttaa rajapinnan, voit tehdä seuraavasti:

class MyPerson implements Person {
  constructor(public forename: string, public surname: string) { }
 
  getFullName() {
    return this.forename + " " + this.surname;
  } 
}

Sinun ei mahdollisesti tarvitse käyttää rajapintaa Person tässä tapauksessa - sen sijaan voisit vain käyttää luokkaa.

Aiheeseen liittyviä artikkeleita