次の方法で共有


ServiceKey class

ServiceKey は、 ServiceScope.consume() を呼び出して依存関係をフェッチするときに使用される参照キーです。

注釈

また、すべてのサービス キーは依存関係の既定の実装も提供します。依存関係が見つからない場合は、ルート スコープで自動的に作成されます。 既定の実装を提供すると、新しい依存関係を提供しない古いホストによって読み込まれたコンポーネントが誤って破損することなく、新しい依存関係を安全に導入できるようになります。

コンストラクター

(constructor)(id, name, defaultCreator)

ServiceKey クラスの新しいインスタンスを構築します

プロパティ

defaultCreator

このサービスの既定のインスタンスを構築するコールバック関数。

id

このサービス キーの一意識別子。

name

サービスの名前。

メソッド

create(name, serviceClass)

既定の実装が標準のコンストラクター パラメーターを受け入れる TypeScript クラスの新しいインスタンスになる、新しい ServiceKey を作成します。

createCustom(name, defaultCreator)

指定されたコールバックを呼び出すことにより既定の実装が取得される、新しい ServiceKey を作成します。

コンストラクターの詳細

(constructor)(id, name, defaultCreator)

ServiceKey クラスの新しいインスタンスを構築します

protected constructor(id: string, name: string, defaultCreator: ServiceCreator<T>);

パラメーター

id

string

name

string

defaultCreator

ServiceCreator<T>

プロパティの詳細

defaultCreator

このサービスの既定のインスタンスを構築するコールバック関数。

readonly defaultCreator: ServiceCreator<T>;

プロパティ値

id

このサービス キーの一意識別子。

readonly id: string;

プロパティ値

string

注釈

この識別子は、ページの有効期間中に一意になる自動的に生成される文字列です。 呼び出し元は、この文字列の書式設定について想定しないでください。 現在はグローバル カウンターに基づいていますが、今後変更される可能性があります。

ServiceScope は、サービスを検索するためのディクショナリ キーとして、この識別子を内部的に使用します。 ServiceKey は、同じ名前が ServiceKey.create() に渡された場合でも、同じライブラリの複数のインスタンスが同じページに読み込まれた場合でも、一意であることを意図しています。 これは、ServiceKey.create() の呼び出しごとに異なる defaultCreator 実装が提供される可能性があるためです。一方、ServiceScope の設計目標の 1 つは、ライブラリの読み込み順序がスコープの結果のツリーに影響を与えてはならないということです。

name

サービスの名前。

readonly name: string;

プロパティ値

string

注釈

この名前は、ログ記録と診断の目的でのみ使用されます。 一意にするために、推奨される規則はパッケージ名、ピリオド、続いてクラスまたはインターフェイス名です。

システムでは、この文字列が一意であるとは想定されません。 代わりに、検索キーが必要な場合はどこでも、 ServiceKey.id が使用されます。

メソッドの詳細

create(name, serviceClass)

既定の実装が標準のコンストラクター パラメーターを受け入れる TypeScript クラスの新しいインスタンスになる、新しい ServiceKey を作成します。

static create<TKey>(name: string, serviceClass: {
        new (serviceScope: ServiceScope): TKey;
    }): ServiceKey<TKey>;

パラメーター

name

string

"my-package" などの名前。IMyService" は、パッケージ間で一意である必要があります。

serviceClass

{ new (serviceScope: ServiceScope): TKey; }

サービスを実装する TypeScript クラス。

戻り値

ServiceKey<TKey>

新しく作成された ServiceKey

注釈

カスタム コンストラクター パラメーターを指定する場合は、代わりに ServiceKey.createCustom() を 使用します。

createCustom(name, defaultCreator)

指定されたコールバックを呼び出すことにより既定の実装が取得される、新しい ServiceKey を作成します。

static createCustom<TKey>(name: string, defaultCreator: ServiceCreator<TKey>): ServiceKey<TKey>;

パラメーター

name

string

"my-package" などの名前。IMyService" は、パッケージ間で一意である必要があります。

defaultCreator

ServiceCreator<TKey>

T インターフェイスを実装するオブジェクトを返すコールバック

戻り値

ServiceKey<TKey>

新しく作成されたサービス キー