Compartir a través de


ServiceKey class

ServiceKey es una clave de búsqueda que se usa al llamar a ServiceScope.consume() para capturar una dependencia.

Comentarios

Cada clave de servicio también proporciona una implementación predeterminada de la dependencia, que se creará automáticamente en el ámbito raíz si no se encuentra la dependencia. Proporcionar una implementación predeterminada garantiza que las nuevas dependencias se puedan introducir de forma segura sin interrumpir accidentalmente los componentes cargados por un host anterior que no proporciona la nueva dependencia.

Constructores

(constructor)(id, name, defaultCreator)

Construye una nueva instancia de la ServiceKey clase

Propiedades

defaultCreator

Función de devolución de llamada que construye la instancia predeterminada de este servicio.

id

Identificador único de esta clave de servicio.

name

Nombre del servicio.

Métodos

create(name, serviceClass)

Construye un nuevo parámetro ServiceKey cuya implementación predeterminada será una nueva instancia de una clase TypeScript que acepta el parámetro de constructor estándar.

createCustom(name, defaultCreator)

Construye un nuevo parámetro ServiceKey cuya implementación predeterminada se obtiene al invocar la devolución de llamada especificada.

Detalles del constructor

(constructor)(id, name, defaultCreator)

Construye una nueva instancia de la ServiceKey clase

protected constructor(id: string, name: string, defaultCreator: ServiceCreator<T>);

Parámetros

id

string

name

string

defaultCreator

ServiceCreator<T>

Detalles de las propiedades

defaultCreator

Función de devolución de llamada que construye la instancia predeterminada de este servicio.

readonly defaultCreator: ServiceCreator<T>;

Valor de propiedad

id

Identificador único de esta clave de servicio.

readonly id: string;

Valor de propiedad

string

Comentarios

Este identificador es una cadena generada automáticamente que será única durante la duración de la página. Los autores de llamadas no deben hacer suposiciones sobre el formato de esta cadena. Actualmente se basa en un contador global, pero esto puede cambiar en el futuro.

ServiceScope usa este identificador internamente como clave de diccionario para buscar servicios. ServiceKey está pensado para ser único, incluso si se cargan varias instancias de la misma biblioteca en la misma página, incluso si el mismo nombre se pasó a ServiceKey.create(). Esto se debe a que cada llamada a ServiceKey.create() podría proporcionar una implementación defaultCreator diferente, mientras que uno de los objetivos de diseño de ServiceScope es que el orden en el que se cargan las bibliotecas nunca debería afectar al árbol resultante de ámbitos.

name

Nombre del servicio.

readonly name: string;

Valor de propiedad

string

Comentarios

Este nombre solo se usa con fines de registro y diagnóstico. Para que sea único, la convención recomendada es el nombre del paquete, seguido de un punto, seguido del nombre de la clase o interfaz.

El sistema no supone que esta cadena sea única. En su lugar, el ServiceKey.id se usa siempre que se necesita una clave de búsqueda.

Detalles del método

create(name, serviceClass)

Construye un nuevo parámetro ServiceKey cuya implementación predeterminada será una nueva instancia de una clase TypeScript que acepta el parámetro de constructor estándar.

static create<TKey>(name: string, serviceClass: {
        new (serviceScope: ServiceScope): TKey;
    }): ServiceKey<TKey>;

Parámetros

name

string

Un nombre como "my-package. IMyService", que debe ser único en todos los paquetes.

serviceClass

{ new (serviceScope: ServiceScope): TKey; }

Clase TypeScript que implementa el servicio.

Devoluciones

ServiceKey<TKey>

Parámetro ServiceKey recién creado.

Comentarios

Si desea especificar parámetros de constructor personalizados, use ServiceKey.createCustom() en su lugar.

createCustom(name, defaultCreator)

Construye un nuevo parámetro ServiceKey cuya implementación predeterminada se obtiene al invocar la devolución de llamada especificada.

static createCustom<TKey>(name: string, defaultCreator: ServiceCreator<TKey>): ServiceKey<TKey>;

Parámetros

name

string

Un nombre como "my-package. IMyService", que debe ser único en todos los paquetes.

defaultCreator

ServiceCreator<TKey>

una devolución de llamada que devuelve un objeto que implementa la interfaz T

Devoluciones

ServiceKey<TKey>

la clave de servicio recién creada