docs: clarify meaning of injectable decorator (#31573)

PR Close #31573
This commit is contained in:
Judy Bogart 2019-07-15 12:49:14 -07:00 committed by Matias Niemelä
parent 1ac07757dd
commit 897bd18fbc
2 changed files with 9 additions and 5 deletions

View File

@ -185,8 +185,7 @@ is available to <code>declarations</code> of this module.</p>
</td> </td>
</tr><tr> </tr><tr>
<td><code><b>@Injectable()</b><br>class MyService() {}</code></td> <td><code><b>@Injectable()</b><br>class MyService() {}</code></td>
<td><p>Declares that a class has dependencies that should be injected into the constructor when the dependency injector is creating an instance of this class. <td><p>Declares that a class can be provided and injected by other classes. Without this decorator, the compiler won't generate enough metadata to allow the class to be created properly when it's injected somewhere.</p>
</p>
</td> </td>
</tr> </tr>
</tbody></table> </tbody></table>

View File

@ -31,15 +31,20 @@ export type InjectableProvider = ValueSansProvider | ExistingSansProvider |
*/ */
export interface InjectableDecorator { export interface InjectableDecorator {
/** /**
* Decorator that marks a class as available to `Injector` for creation. * Decorator that marks a class as available to be
* provided and injected as a dependency.
* *
* @see [Introduction to Services and DI](guide/architecture-services) * @see [Introduction to Services and DI](guide/architecture-services)
* @see [Dependency Injection Guide](guide/dependency-injection) * @see [Dependency Injection Guide](guide/dependency-injection)
* *
* @usageNotes * @usageNotes
* *
* The following example shows how service classes are properly marked as * Marking a class with `@Injectable` ensures that the compiler
* injectable. * will generate the necessary metadata to create the class's
* dependencies when the class is injected.
*
* The following example shows how a service class is properly
* marked so that a supporting service can be injected upon creation.
* *
* <code-example path="core/di/ts/metadata_spec.ts" region="Injectable" * <code-example path="core/di/ts/metadata_spec.ts" region="Injectable"
* linenums="false"></code-example> * linenums="false"></code-example>