0

@Inject(...)タイプのように使用するのではなく、なぜ OpaqueTokenが必要なのですか?

なぜこれが機能するのですか:

import { AppConstantsToken } from './app.constants.ts';

export class MyApp {
    constructor(@Inject(AppConstantsToken) private config) {
    }
}

そして、これはしません:

import { AppConstantsToken } from './app.constants.ts';

export class MyApp {
    constructor(private config: AppConstantsToken) {
    }
}

次の OpaqueToken を宣言/提供した場合:

app.constants.ts :

import { OpaqueToken } from '@angular/core';

export const APP_CONSTANTS = {
    apiUri: 'appapi.com'
};

export const AppConstantsToken = new OpaqueToken('APPCONSTANTS');

export function provideAppConstants() {
    return APP_CONSTANTS;
}

app.module.ts:

import { AppConstantsToken, provideAppConstants } from './app.constants.ts';

@NgModule({
    ...,
    providers: [
        { provide AppConstantsToken, useFactory: provideAppConstants }
    ],
    ...
});
4

0 に答える 0