2017-01-16 1 views
1

En angulaire1, nous n'avions que des types de jetons pour les fournisseurs - chaînes. En angulaire2, tous les exemples que j'ai vus semblent utiliser des jetons de classe. Par exemple:Quels sont les types de jeton corrects pour DI

class Car {} 

var injector = ResolveInjector.resolveAndCreate([ 
    { provide: Car, useClass: Car }, 
      ^^^ 
    { provide: Engine, useClass: Engine } 
]); 

Je me demande quels sont les types de jeton valides? Sont-ils basés sur des types de données TypeScript ou des types de données JavaScript? Lors de la résolution des dépendances, angulaire uses metadata. Les types de jetons valides sont donc ceux qui sont valides dans les métadonnées?

Répondre

1
+0

grâce, qu'en est-jeton 'Object' de la documentation _Using une OpaqueToken est préférable à l'utilisation d'un 'Object' comme tokens car il fournit de meilleurs messages d'erreur. –

+0

Désolé, ne peut donner aucun sens à cette phrase. La phrase précédente dit "OpaqueToken" est préférable à l'utilisation de chaînes ". Cela est logique, car 'OpaqueToken' peut pointer vers la source où elle est déclarée et les fausses importations provoqueront des erreurs. Les chaînes sont dupliquées si aucune constante globale n'est utilisée et si la chaîne est modifiée à un endroit, elle peut être oubliée sur d'autres. –

+0

J'ai créé https://github.com/angular/angular/issues/13944 –