Paramètres fournis ne correspondent pas à la signature de l'appel de la cible
J'obtiens cette erreur quand j'utilise un paramètre de décorateur dans une méthode. La classe implémente une interface. Voici l'interface et la classe:
export interface IClient{
getServerConfig(): Observable<Response> ;
getDashboard(): Observable<Response>;
deploy(channelId: string): Observable<Response>;
}
export class Client implements IClient {
public constructor( @Inject(Http) private http: Http, @Inject(Model) private config: Model) {
super(http, config);
}
public getServerConfig(): Observable<Response> {
return null;
}
public getDashboard(): Observable<Response> {
return null;
}
public deploy(@Body('param') channelId: string): Observable<Response> {
return null;
}
}
Lors de la construction, j'obtiens cette erreur
Supplied parameters do not match any signature of call target.
droit à la déployer fonction.
Le problème semble être le paramètre le décorateur à côté de la channelId paramètre. Maintenant, je ne peux pas l'enlever comme j'en ai besoin alors je me demande si il existe un moyen de garder la définition de l'interface et le décorateur. Les décorateurs ne sont pas autorisés dans les interfaces de sorte que n'est pas une option.
Des idées?
OriginalL'auteur Alex Ciobanu | 2016-02-26
Vous devez vous connecter pour publier un commentaire.
Plus rapide fix est de faire
const BodyAny:any = Body
et l'utilisationBodyAny
. Sinon fixer la définition de type pourBody
.OriginalL'auteur basarat
J'ai eu la même erreur, et le problème était un manque
@Injectable()
sur le service, il a été se plaindre.Simplement de l'importation et de ajoutant des le décorateur triée!
OriginalL'auteur elwyn