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