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.
