在Angular 7中,'OpaqueToken'已经被弃用了。相反,你应该使用'InjectionToken'来代替。
下面是一个使用'InjectionToken'的代码示例:
import { InjectionToken } from '@angular/core';
// 创建一个InjectionToken
export const MY_TOKEN = new InjectionToken('myToken');
// 在组件中使用InjectionToken
import { Component, Inject } from '@angular/core';
import { MY_TOKEN } from './my-token';
@Component({
selector: 'app-my-component',
template: `
{{ myValue }}
`
})
export class MyComponent {
constructor(@Inject(MY_TOKEN) public myValue: string) {}
}
// 在模块中提供InjectionToken的值
import { NgModule } from '@angular/core';
import { MY_TOKEN } from './my-token';
@NgModule({
imports: [...],
declarations: [...],
providers: [
{ provide: MY_TOKEN, useValue: 'Hello, world!' }
],
bootstrap: [AppComponent]
})
export class AppModule {}
通过将'OpaqueToken'替换为'InjectionToken',你应该能够解决这个错误。