首页 > 解决方案 > 可选依赖项

问题描述

我正在尝试通过 @Inject() 注入依赖项,并希望它是可选的。@Optional() 标记似乎不适用于这种类型的依赖项。关于可选 @Inject 的文档指出它应该写成 @Inject(TOKEN, null); 然而,这不被认为是有效的语法。有没有其他方法可以允许未定义的注入?

标签: angular

解决方案


您应该可以访问它,您确定您导入了它吗?

import { Injectable, Optional } from '@angular/core';

@Injectable()
export class TestService1 {
    constructor(@Optional() public testService2: TestService2) { }
}

将依赖项标记为可选的参数元数据。如果未找到依赖项,则 Injector 提供 null 。

https://angular.io/api/core/可选


推荐阅读