跳到主要内容

模块

Provider 种类

Provider是一个比较宽泛的概念,不仅局限于Service类型,实际上任何一个类、值乃至一个接口,都可以视作一个Provider

export type Provider<T = any> =
| Type<any> // 类型
| ClassProvider<T> // 类
| ValueProvider<T> // 值
| FactoryProvider<T> // 工厂
| ExistingProvider<T>; // 别名
  • Type 类型
  • ClassProvider 类类型的Provider,有三个字段组成:
    • provide:被注入对象参数,可以是字符串,symbol,类型,抽象类和Function
    • useClass:类型名称
    • scope:作用域(参考Provider作用域),可选参数,默认scope.DEFAULT,即Application
  • ValueProvider 值类型Provider,有两个字段组成:
    • provide:被注入对象参数,可以是字符串,symbol,类型,抽象类和Function
    • userValue:值的实例
  • FactoryProvider 工厂类Provider,有四个字段:
    • provide:被注入对象参数,可以是字符串,symbol,类型,抽象类和Function
    • useFactory:工厂的参数
    • inject:被注入的工厂中上依赖项(可选)
    • scope:作用域,(可选)
  • ExistingProvider 已经存在的(别名)类Provider,两个字段:
    • provide:被注入对象参数,可以是字符串,symbol,类型,抽象类和Function
    • useExisting:别名