Partager via


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, defaultCreator)

Construit une nouvelle instance de la ServiceKey classe

Propriétés

defaultCreator

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, 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.

createCustom(name, defaultCreator)

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

ServiceCreator<T>

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