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, default |
Construye una nueva instancia de la |
Propiedades
default |
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, service |
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. |
create |
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
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