mirror of
https://github.com/angular/angular.git
synced 2026-09-14 13:54:52 +08:00
fa52b6e906
`inject()` originated as a private API and was made public to support `InjectionToken` factories in Ivy. For code-size and performance reasons, when we code generate `inject()` calls we use a bit field to indicate the various injection modes (optional, skip-self, etc). However, this doesn't make for a very nice public API. This commit introduces an alternative object-based API for options. All 4 flags are supported as `boolean` fields on an options object, and converted to bit flags internally. If TypeScript can prove that `optional` injection is not requested, it can narrow the return type and remove the `null` type. DEPRECATED: The bit field signature of `inject()` has been deprecated, in favor of the new options object. Correspondingly, `InjectFlags` is deprecated as well. Fixes #46251 PR Close #46649
Angular
The sources for this package are in the main Angular repo. Please file issues and pull requests against that repo.
Usage information and reference details can be found in Angular documentation.
License: MIT