2016-09-08 2 views
1

Travailler sur un projet et voir les développeurs faire ce qui suit en tapuscrit.Quand une classe devrait-elle implémenter une interface?

export class Ledger implements ILedger { 
     LedgerID: number; 
     CashAmmount: number; 
     Units: number; 

     public static someFunction { 
     // an ajax call for example to a controller 
     } 
    } 

    export interface ILedger { 
     LedgerID: number; 
     CashAmmount: number; 
     Units: number; 
    } 

Vous vous demandez si c'est la bonne façon de faire les choses. Juste semble inutile s'il n'y a pas de mise en œuvre dans la classe. Ensuite, dans nos composants React, il y a des références à l'interface ou parfois à la classe. Vous voulez commencer à mettre en place certaines conventions, mais vous voulez de l'aide sur la pratique appropriée dans cette situation?

Répondre

2

Il semble inutile s'il n'y a aucune implémentation dans la classe.

Je suis d'accord. Pas besoin dans ce cas. Mais il y a des cas valides

Dépendance injectent

Quelque chose comme: https://github.com/inversify/InversifyJS

Conformes aux Apis externes

quelqu'un demande IFoo. Vous souhaitez utiliser une classe dans votre base de code pour IFoo. Demandez à une classe de l'étendre pour que vous sachiez que la classe suit toujours cette IFoo externe.