为什么我需要@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 }
],
...
});