账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    Injectable 无法传入可选参数 providedIn
    32
    0

    Angular6 官方文档http 部分 的例子,在heroes.service.ts 中,导出之前@Injectable({ providedIn: 'root' })一直报错
    错误提示是

    ERROR in src/app/hero.service.ts(15,2): error TS2554: Expected 0 arguments, but got 1.

    api中Injectable 是有可选参数providedIn

    不知道这是什么原因,有谁遇到过这个问题?

    0
    打赏
    收藏
    点击回答
        全部回答
    • 共 0 条
    • Injectable 是一个 @Component、@Provider、@Singleton、@凹陷、@DependsOn、@AutoAccepts 等高阶注解。Injectable 可以用于注入组件的依赖关系,但是它并不能直接用于传入可选参数。

      在使用 Injectable 注解时,你需要确保你的组件在使用时已经获取到了依赖对象,否则 Injectable 就无法正常工作。你可以使用 @Autowired 注解来注入依赖对象。

      如果你想在 Injectable 中传入可选参数,你需要在方法的参数列表中使用 @Optional 注解。例如:

      ```java public class MyComponent { private final MyDependency myDependency;

      @Injectable()
      public MyComponent(MyDependency myDependency) {
          this.myDependency = myDependency;
      }
      
      public MyDependency getMyDependency() {
          return myDependency;
      }
      

      } ```

      在这个例子中,@Injectable() 注解告诉 MyComponent 需要注入一个 MyDependency 对象。然后在方法的参数列表中,我们使用 @Optional 注解来表示这个参数可以被省略,即它可能不是必需的。

      注意,@Optional 会在方法的签名中声明这个参数,而不是在方法体中声明。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部