Ich brauche Zugriff auf die $promise
Eigenschaft des Objekts mit einer Standardaktion zurückgegeben auf $resource
(z. B. entfernen, Abfrage ...). Aber es scheint, ist es nicht möglich in aktuellen Typoskript Definitionen für $resource
ist:
Beispiel:
ich einen Studenten Ressource:
interface IStudentDataModel {
name: string
age: number
}
interface IStudentResource extends IResourceClass<IStudentDataModel> {
deactivate(params: Object): IResource<IStudentDataModel>
}
export default function ($resource: IResourceService, CONFIG: IConfig): IStudentResource {
"ngInject"
let deactivateAction: IActionDescriptor = {
url: `${CONFIG.api_host}/students/:studentId/deactivate`,
method: 'PUT'
}
return <IStudentResource>$resource(
`${CONFIG.api_host}/students/:studentId`,
}
studentId: '@studentId'
},
{
deactivate: deactivateAction,
});
}
Dann diese Ressource Ich verwende in einem anderen Dienst:
PROBLEM: Ich kann nicht auf die this.StudentResource.remove({ studentId: studentId}).$promise
zugreifen, da Standardaktionen IStudentDataModel
als Rückkehr trype inste haben Anzeige von IResource<IStudentDataModel>
(aber es liefert Ressource mit $ promise-Eigenschaft, nicht nur Datenmodell).
Ich habe versucht, die Methode remove in IStudentResource
außer Kraft zu setzen:
interface IStudentResource extends IResourceClass<IStudentDataModel> {
deactivate(params: Object): IResource<IStudentDataModel>
remove(params: Object): IResource<IStudentDataModel>
}
Aber Compiler sagt:
Interface 'IStudentResource' erstreckt sich falsch Schnittstelle 'IResourceClass'. Typen der Eigenschaft 'Entfernen' sind inkompatibel. Typ '(data: Object) => IResource' kann nicht dem Typ 'IResourceMethod' zugewiesen werden.