ServiceKey class
A ServiceKey é uma chave de pesquisa que é utilizada ao chamar ServiceScope.consume() para obter uma dependência.
Comentários
Cada chave de serviço também fornece uma implementação predefinida da dependência, que será criada automaticamente no âmbito de raiz se a dependência não for encontrada. Fornecer uma implementação predefinida garante que as novas dependências podem ser introduzidas em segurança sem quebrar inadvertidamente os componentes carregados por um anfitrião mais antigo que não fornece a nova dependência.
Construtores
(constructor)(id, name, default |
Constrói uma nova instância da |
Propriedades
default |
Uma função de chamada de retorno que constrói a instância predefinida deste serviço. |
id | Um identificador exclusivo para esta chave de serviço. |
name | O nome do serviço. |
Métodos
create(name, service |
Cria um novo ServiceKey cuja implementação padrão será uma nova instância de uma classe TypeScript que aceita o parâmetro construtor padrão. |
create |
Cria um novo ServiceKey cuja implementação padrão será obtida chamando o retorno de chamada especificado. |
Detalhes do construtor
(constructor)(id, name, defaultCreator)
Constrói uma nova instância da ServiceKey
classe
protected constructor(id: string, name: string, defaultCreator: ServiceCreator<T>);
Parâmetros
- id
-
string
- name
-
string
- defaultCreator
Detalhes da propriedade
defaultCreator
Uma função de chamada de retorno que constrói a instância predefinida deste serviço.
readonly defaultCreator: ServiceCreator<T>;
Valor da propriedade
id
Um identificador exclusivo para esta chave de serviço.
readonly id: string;
Valor da propriedade
string
Comentários
Este identificador é uma cadeia gerada automaticamente que será exclusiva para a duração da página. Os autores de chamadas não devem fazer suposições sobre a formatação desta cadeia. Atualmente, baseia-se num contador global, mas isto pode mudar no futuro.
O ServiceScope utiliza este identificador internamente como uma chave de dicionário para localizar serviços. A ServiceKey destina-se a ser exclusiva, mesmo que várias instâncias da mesma biblioteca sejam carregadas na mesma página, mesmo que o mesmo nome tenha sido transmitido para ServiceKey.create(). Isto deve-se ao facto de cada chamada para ServiceKey.create() poder potencialmente fornecer uma implementação defaultCreator diferente, ao passo que um dos objetivos de conceção do ServiceScope é que a ordem pela qual as bibliotecas são carregadas nunca deve afetar a árvore de âmbitos resultante.
name
O nome do serviço.
readonly name: string;
Valor da propriedade
string
Comentários
Este nome é utilizado apenas para fins de registo e diagnóstico. Para torná-lo exclusivo, a convenção recomendada é o nome do pacote, seguido de um ponto final, seguido do nome da classe ou interface.
O sistema não assume que esta cadeia é exclusiva. Em vez disso, o ServiceKey.id é utilizado sempre que for necessária uma chave de pesquisa.
Detalhes do método
create(name, serviceClass)
Cria um novo ServiceKey cuja implementação padrão será uma nova instância de uma classe TypeScript que aceita o parâmetro construtor padrão.
static create<TKey>(name: string, serviceClass: {
new (serviceScope: ServiceScope): TKey;
}): ServiceKey<TKey>;
Parâmetros
- name
-
string
Um nome como "my-package". IMyService" que deve ser exclusivo entre pacotes.
- serviceClass
-
{ new (serviceScope: ServiceScope): TKey; }
a classe TypeScript que implementa o serviço.
Retornos
ServiceKey<TKey>
o ServiceKey recém-criado
Comentários
Se quiser especificar parâmetros de construtor personalizados, utilize ServiceKey.createCustom().
createCustom(name, defaultCreator)
Cria um novo ServiceKey cuja implementação padrão será obtida chamando o retorno de chamada especificado.
static createCustom<TKey>(name: string, defaultCreator: ServiceCreator<TKey>): ServiceKey<TKey>;
Parâmetros
- name
-
string
Um nome como "my-package". IMyService" que deve ser exclusivo entre pacotes.
- defaultCreator
-
ServiceCreator<TKey>
uma chamada de retorno que devolve um objeto que implementa a interface T
Retornos
ServiceKey<TKey>
a chave de serviço recentemente criada