javascript - Bagaimana cara mendefinisikan sebuah fungsi dalam sebuah interface di Angular?


Saya memiliki masalah berikut yang belum saya temukan solusinya yang bekerja. Saya memiliki sebuah antarmuka di Aplikasi Angular saya:

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

Bagaimana saya harus mendefinisikan sebuah fungsi bernama getFullName() dengan implementasi berikut:

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

Saya mencobanya langsung di antarmuka dengan fungsi sebagai kunci tetapi itu tidak berhasil...

Jawaban #1

Anda dapat menggunakan tanda tangan fungsi () => string untuk merepresentasikan fungsi yang tidak mengambil argumen dan mengembalikan string.

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

Namun, Anda tidak bisa mendefinisikan implementasi di dalam antarmuka.

Untuk membuat kelas yang mengimplementasikan antarmuka, Anda dapat melakukan hal berikut:

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

Anda kemungkinan tidak memerlukan antarmuka Person dalam kasus ini - sebaliknya Anda bisa langsung menggunakan kelasnya.

Artikel terkait