5 votes

Surcharge de méthode dans Angular 4 / 2

Je travaille maintenant avec Angular 4. Je n'ai pas trouvé de solution adéquate concernant la surcharge des méthodes dans Angular 2 ou 4. Est-ce qu'il est possible d'implémenter la surcharge de méthode dans une classe de service angulaire ? Ou je suis intéressé à connaître les détails à ce sujet. Merci d'avance.

Je viens d'essayer de mettre en cage Service comme ci-dessous mais trouvé Erreur de mise en œuvre de la fonction Dublicate

ApiService.ts :

import { Injectable } from '@angular/core';

@Injectable()
export class ApiService {

       constructor() { }

       postCall(url, data, token) { // with three parameters
                 return resultFromServer; }        

       postCall(url, data) { // with two parameters
                return resultFromServer;}          
       }

AuthenticationService.ts :

import { Injectable } from '@angular/core';
import { ApiService } from "app/_services/api.service";
import FunUtils from "app/_helper/utils";

@Injectable()
export class AuthenticationService {

    constructor(private api: ApiService) { }

    rest_login_call(userName, password) {
        let data = { username: userName, password: password };
        let url = "http://localhost:8000";
        return this.api.postCall(url, data);
    }

}

13voto

Au lieu de surcharger les méthodes, rendez les jeton paramètre facultatif.

postCall(url, data, token?) { // with three parameters
             return resultFromServer; 
}        

J'espère que cela vous aidera

3voto

monica Points 919

Depuis TypeScript 1.4, vous pouvez généralement vous passer d'une surcharge en utilisant un paramètre optionnel et un type d'union (si vous ne connaissez pas le type du paramètre). L'exemple ci-dessus peut être mieux exprimé en utilisant :

postCall(url: string, data: Object, token?: string | number) {
   return resultFromServer; 
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X