ServiceKey class
O ServiceKey é uma chave de pesquisa usada ao chamar ServiceScope.consum() para buscar uma dependência.
Comentários
Cada chave de serviço também fornece uma implementação padrão da dependência, que será criada automaticamente no escopo raiz se a dependência não for encontrada. Fornecer uma implementação padrão garante que novas dependências possam ser introduzidas com segurança sem quebrar componentes que são carregados por um host 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 retorno de chamada que constrói a instância padrão desse serviço. |
id | Um identificador exclusivo para essa 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 retorno de chamada que constrói a instância padrão desse serviço.
readonly defaultCreator: ServiceCreator<T>;
Valor da propriedade
id
Um identificador exclusivo para essa chave de serviço.
readonly id: string;
Valor da propriedade
string
Comentários
Esse identificador é uma cadeia de caracteres gerada automaticamente que será exclusiva para o tempo de vida útil da página. Os chamadores não devem fazer suposições sobre a formatação dessa cadeia de caracteres. Atualmente, é baseado em um contador global, mas isso pode mudar no futuro.
O ServiceScope usa esse identificador internamente como uma chave de dicionário para encontrar serviços. O ServiceKey deve ser exclusivo, mesmo que várias instâncias da mesma biblioteca sejam carregadas na mesma página, mesmo que o mesmo nome tenha sido passado para ServiceKey.create(). Isso ocorre porque cada chamada para ServiceKey.create() poderia potencialmente fornecer uma implementação defaultCreator diferente, enquanto uma das metas de design do ServiceScope é que a ordem na qual as bibliotecas são carregadas nunca deve afetar a árvore de escopos resultante.
name
O nome do serviço.
readonly name: string;
Valor da propriedade
string
Comentários
Esse nome é usado apenas para fins de registro em log e diagnóstico. Para torná-lo exclusivo, a convenção recomendada é o nome do pacote, seguido por um período, seguido pelo nome da classe ou da interface.
O sistema não pressupõe que essa cadeia de caracteres seja exclusiva. Em vez disso, o ServiceKey.id é usado onde quer que uma chave de pesquisa seja necessária.
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 "meu pacote. 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 você quiser especificar parâmetros de construtor personalizados, use ServiceKey.createCustom() em vez disso.
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 "meu pacote. IMyService" que deve ser exclusivo entre pacotes.
- defaultCreator
-
ServiceCreator<TKey>
um retorno de chamada que retorna um objeto que implementa a interface T
Retornos
ServiceKey<TKey>
a chave de serviço recém-criada