angular - „Nu se poate invoca o expresie al cărei tip nu are o semnătură de apel.” atunci când se folosește cuvântul cheie „get” în TypeScript
Am un furnizor configurationService care are această funcție cu cuvântul cheie get:
get getServerContextPath(): string {
return this.config.serverContextPath;
}
Când folosesc această funcție într-un component astfel:
const contextPath = this.configurationService.getServerContextPath();
Primeșc o eroare:
[ts] Nu se poate invoca o expresie al cărei tip nu are o semnătură de apel. Tipul 'String' nu are semnături de apel compatibile.
Totuși, dacă elimin cuvântul cheie get, nu primesc niciun fel de erori:
getServerContextPath(): string {
return this.config.serverContextPath;
}
De ce este asta?
Răspuns #1
În primul caz, obții o proprietate, așa că trebuie să o apelezi ca
const contextPath = this.configurationService.getServerContextPath
În al doilea caz este o metodă (funcție) a unei clase, deci o poți apela ca
const contextPath = this.configurationService.getServerContextPath()
Răspunsul #2
Încearcă astfel:
const contextPath = this.configurationService.getServerContextPath;
