Skip to content

Conversation

clydin
Copy link
Member

@clydin clydin commented Mar 17, 2025

To align with the updated style guide, Angular v20 will generate services without a .service file extension type for all service related files by default. Projects will automatically use this naming convention. Projects can however opt-out by setting the type option to Service for the service schematic. This can be done as a default in the angular.json or directly on the commandline via --type=Service when executing ng generate. As an example, example.service.ts will now be named example.ts. Additionally, the TypeScript class name will be Example instead of the previous ExampleService.

Fixes: #24602

…e generation

The `library` schematic will now longer generate an empty Angular service
with the name of the library. Using only the name would generate a file
name conflict with the component now that the type suffix is no longer
used by default. Additionally, services tend to be specific to a particular
behavior and/or functionality and are named as such. A generically named
empty service will typically be deleted or renamed.
@clydin clydin added the target: major This PR is targeted for the next major release label Mar 17, 2025
@clydin clydin force-pushed the style-guide/service-empty-type branch 2 times, most recently from 0e304f9 to 40a9020 Compare March 17, 2025 19:55
@clydin clydin marked this pull request as ready for review March 17, 2025 19:55
@clydin clydin added the action: review The PR is still awaiting reviews from at least one requested reviewer label Mar 17, 2025
…ion/type

To align with the updated style guide, Angular v20 will generate services
without a `.service` file extension type for all service related
files by default. Projects will automatically use this naming convention.
Projects can however opt-out by setting the `type` option to `Service`
for the service schematic. This can be done as a default in the `angular.json`
or directly on the commandline via `--type=Service` when executing `ng generate`.
As an example, `example.service.ts` will now be named `example.ts`. Additionally,
the TypeScript class name will be `Example` instead of the previous `ExampleService`.
@clydin clydin force-pushed the style-guide/service-empty-type branch from 40a9020 to f7c0f5e Compare March 17, 2025 20:26
@clydin clydin requested a review from alan-agius4 March 17, 2025 20:41
@alan-agius4 alan-agius4 added action: merge The PR is ready for merge by the caretaker and removed action: review The PR is still awaiting reviews from at least one requested reviewer labels Mar 18, 2025
@clydin clydin merged commit bc0f07b into angular:main Mar 18, 2025
31 checks passed
@clydin clydin deleted the style-guide/service-empty-type branch March 18, 2025 11:25
@angular-automatic-lock-bot
Copy link

This issue has been automatically locked due to inactivity.
Please file a new issue if you are encountering a similar or related problem.

Read more about our automatic conversation locking policy.

This action has been performed automatically by a bot.

@angular-automatic-lock-bot angular-automatic-lock-bot bot locked and limited conversation to collaborators Apr 18, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

action: merge The PR is ready for merge by the caretaker area: @schematics/angular target: major This PR is targeted for the next major release

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add --type option for service generation

2 participants