Compartilhar via


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

Constrói uma nova instância da ServiceKey classe

Propriedades

defaultCreator

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

createCustom(name, defaultCreator)

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

ServiceCreator<T>

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