ValueProvider: value must be assignable to provide
ClassProvider: useClass must be a Class whose instance type is assignable to provide
FactoryProvider: deps needs to match parameters of useFactory, useFactory's return type must be assignable to provide
ExistingProvider: useExisting must be assignable to provide
ConstructorProvider: deps needs to match parameters of provide's construct signature
Needs to take multi into account.
Requires type relationship APIs
ValueProvider:valuemust be assignable toprovideClassProvider:useClassmust be a Class whose instance type is assignable toprovideFactoryProvider:depsneeds to match parameters ofuseFactory,useFactory's return type must be assignable toprovideExistingProvider:useExistingmust be assignable toprovideConstructorProvider:depsneeds to match parameters ofprovide's construct signatureNeeds to take
multiinto account.Requires type relationship APIs