ServiceKey class
ServiceKey est une clé de recherche utilisée lors de l’appel de ServiceScope.consume() pour extraire une dépendance.
Remarques
Chaque clé de service fournit également une implémentation par défaut de la dépendance, qui sera automatiquement créée dans l’étendue racine si la dépendance est introuvable. Fournir une implémentation par défaut garantit que les nouvelles dépendances peuvent être introduites en toute sécurité sans casser par inadvertance les composants chargés par un hôte plus ancien qui ne fournit pas la nouvelle dépendance.
Constructeurs
(constructor)(id, name, default |
Construit une nouvelle instance de la |
Propriétés
default |
Fonction de rappel qui construit la instance par défaut de ce service. |
id | Identificateur unique pour cette clé de service. |
name | Nom du service. |
Méthodes
create(name, service |
Crée un nouveau ServiceKey dont l’implémentation par défaut sera une nouvelle instance d’une classe TypeScript qui accepte le paramètre de constructeur standard. |
create |
Crée un nouveau ServiceKey dont l’implémentation par défaut sera obtenue en appelant le rappel spécifié. |
Détails du constructeur
(constructor)(id, name, defaultCreator)
Construit une nouvelle instance de la ServiceKey
classe
protected constructor(id: string, name: string, defaultCreator: ServiceCreator<T>);
Paramètres
- id
-
string
- name
-
string
- defaultCreator
Détails de la propriété
defaultCreator
Fonction de rappel qui construit la instance par défaut de ce service.
readonly defaultCreator: ServiceCreator<T>;
Valeur de propriété
id
Identificateur unique pour cette clé de service.
readonly id: string;
Valeur de propriété
string
Remarques
Cet identificateur est une chaîne générée automatiquement qui sera unique pendant la durée de vie de la page. Les appelants ne doivent pas faire d’hypothèses sur la mise en forme de cette chaîne. Il est actuellement basé sur un compteur global, mais cela pourrait changer à l’avenir.
ServiceScope utilise cet identificateur en interne comme clé de dictionnaire pour rechercher des services. ServiceKey est censé être unique, même si plusieurs instances de la même bibliothèque sont chargées sur la même page, même si le même nom a été transmis à ServiceKey.create(). Cela est dû au fait que chaque appel à ServiceKey.create() peut potentiellement fournir une implémentation defaultCreator différente, tandis que l’un des objectifs de conception de ServiceScope est que l’ordre dans lequel les bibliothèques sont chargées ne doit jamais affecter l’arborescence d’étendues résultante.
name
Nom du service.
readonly name: string;
Valeur de propriété
string
Remarques
Ce nom est utilisé uniquement à des fins de journalisation et de diagnostic. Pour la rendre unique, la convention recommandée est le nom du package, suivi d’un point, suivi du nom de la classe ou de l’interface.
Le système ne suppose pas que cette chaîne est unique. Au lieu de cela, le ServiceKey.id est utilisé partout où une clé de recherche est nécessaire.
Détails de la méthode
create(name, serviceClass)
Crée un nouveau ServiceKey dont l’implémentation par défaut sera une nouvelle instance d’une classe TypeScript qui accepte le paramètre de constructeur standard.
static create<TKey>(name: string, serviceClass: {
new (serviceScope: ServiceScope): TKey;
}): ServiceKey<TKey>;
Paramètres
- name
-
string
Un nom tel que « my-package. IMyService » qui doit être unique entre les packages.
- serviceClass
-
{ new (serviceScope: ServiceScope): TKey; }
classe TypeScript qui implémente le service.
Retours
ServiceKey<TKey>
ServiceKey nouvellement créé
Remarques
Si vous souhaitez spécifier des paramètres de constructeur personnalisés, utilisez ServiceKey.createCustom() à la place.
createCustom(name, defaultCreator)
Crée un nouveau ServiceKey dont l’implémentation par défaut sera obtenue en appelant le rappel spécifié.
static createCustom<TKey>(name: string, defaultCreator: ServiceCreator<TKey>): ServiceKey<TKey>;
Paramètres
- name
-
string
Un nom tel que « my-package. IMyService » qui doit être unique entre les packages.
- defaultCreator
-
ServiceCreator<TKey>
un rappel qui retourne un objet qui implémente l’interface T
Retours
ServiceKey<TKey>
la clé de service nouvellement créée