@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 }
],
...
});