ServiceKey class
ServiceKey は、 ServiceScope.consume() を呼び出して依存関係をフェッチするときに使用される参照キーです。
注釈
また、すべてのサービス キーは依存関係の既定の実装も提供します。依存関係が見つからない場合は、ルート スコープで自動的に作成されます。 既定の実装を提供すると、新しい依存関係を提供しない古いホストによって読み込まれたコンポーネントが誤って破損することなく、新しい依存関係を安全に導入できるようになります。
コンストラクター
(constructor)(id, name, default |
|
プロパティ
default |
このサービスの既定のインスタンスを構築するコールバック関数。 |
id | このサービス キーの一意識別子。 |
name | サービスの名前。 |
メソッド
create(name, service |
既定の実装が標準のコンストラクター パラメーターを受け入れる TypeScript クラスの新しいインスタンスになる、新しい ServiceKey を作成します。 |
create |
指定されたコールバックを呼び出すことにより既定の実装が取得される、新しい ServiceKey を作成します。 |
コンストラクターの詳細
(constructor)(id, name, defaultCreator)
ServiceKey
クラスの新しいインスタンスを構築します
protected constructor(id: string, name: string, defaultCreator: ServiceCreator<T>);
パラメーター
- id
-
string
- name
-
string
- defaultCreator
プロパティの詳細
defaultCreator
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>
新しく作成されたサービス キー