Compartilhar via


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

Constrói uma nova instância da ServiceKey classe

Propriedades

defaultCreator

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