What is @angular/language-service?
The @angular/language-service package provides a way to get completions, errors, hints, and navigation inside Angular templates. It works with both external and inline templates and is used primarily in integrated development environments (IDEs) and text editors to enhance the development experience with Angular applications.
What are @angular/language-service's main functionalities?
Autocompletion
Provides autocompletion suggestions for Angular template syntax, including bindings, directives, components, and template variables.
No specific code sample can be provided as this functionality is integrated into IDEs and leverages the language service API to provide autocompletion suggestions.
Error Checking
Highlights errors in Angular templates, such as type errors, missing directives, and incorrect bindings, helping developers to identify and fix issues more quickly.
No specific code sample can be provided as this functionality is integrated into IDEs and leverages the language service API to highlight errors in Angular templates.
Navigation and Refactoring
Enables features like 'Go to definition' for components, directives, and template variables, and supports refactoring operations such as renaming symbols.
No specific code sample can be provided as this functionality is integrated into IDEs and leverages the language service API to enable features like go to definition and refactoring.
Other packages similar to @angular/language-service
typescript
While not specifically for Angular, TypeScript is often used alongside Angular for type checking and editor integrations. TypeScript provides language services that offer similar features (like autocompletion and error checking) but for TypeScript code rather than Angular templates.
vetur
Vetur is a Vue tooling for VSCode, offering features similar to @angular/language-service but for Vue.js applications. It provides syntax highlighting, snippets, Emmet, linting/error checking, formatting, auto completion, debugging, and more for Vue components.
eslint-plugin-angular
This package is an ESLint plugin that contains a set of rules for static code analysis of Angular applications. While it doesn't offer real-time error checking or autocompletion within templates, it provides a similar goal of improving code quality and catching errors.
19.0.0-next.0 (2024-08-14)
Breaking Changes
core
-
Errors that are thrown during ApplicationRef.tick
will now be rethrown when using TestBed
. These errors should be
resolved by ensuring the test environment is set up correctly to
complete change detection successfully. There are two alternatives to
catch the errors:
- Instead of waiting for automatic change detection to happen, trigger
it synchronously and expect the error. For example, a jasmine test
could write
expect(() => TestBed.inject(ApplicationRef).tick()).toThrow()
TestBed
will reject any outstanding ComponentFixture.whenStable
promises. A jasmine test,
for example, could write expectAsync(fixture.whenStable()).toBeRejected()
.
As a last resort, you can configure errors to not be rethrown by
setting rethrowApplicationErrors
to false
in TestBed.configureTestingModule
.
router
- The
Router.errorHandler
property has been removed.
Adding an error handler should be configured in either
withNavigationErrorHandler
with provideRouter
or the errorHandler
property in the extra options of RouterModule.forRoot
. In addition,
the error handler cannot be used to change the return value of the
router navigation promise or prevent it from rejecting. Instead, if you
want to prevent the promise from rejecting, use resolveNavigationPromiseOnError
. - The return type of the
Resolve
interface now includes
RedirectCommand
.
core
| Commit | Type | Description |
| -- | -- | -- |
| 468d3fb9b1 | fix | rethrow errors during ApplicationRef.tick in TestBed (#57200) |
router
| Commit | Type | Description |
| -- | -- | -- |
| f271021e19 | feat | Add routerOutletData
input to RouterOutlet
directive (#57051) |
| b2790813a6 | fix | Align RouterModule.forRoot errorHandler with provider error handler (#57050) |
| 7436d3180e | fix | Update Resolve interface to include RedirectCommand like ResolveFn (#57309) |
<!-- CHANGELOG SPLIT MARKER -->
<a name="18.2.0"></a>