Deliver web apps with confidence 🚀
Find a file
Kristiyan Kostadinov fd5a04927e fix(compiler): recover invalid parenthesized expressions (#61815)
When the expression parser consumes tokens inside a parenthesized expression, it looks for valid tokens until it hits and invalid one or a closing paren. If it finds an invalid token, it reports and error and tries to recover until it finds a closing paren. The problem is that in such cases, it would produce the `ParenthesizedExpression` and continue parsing **from** from the closing paren which would then produce more errors that add noise to the output and result in an incorrect representation of the user's code. E.g. `foo((event.target as HTMLElement).value)` would be recovered to `foo((event.target)).value` instead of `foo((event.target).value)`.

These changes resolve the issue by skipping over the closing paren at the recovery point.

Fixes #61792.

PR Close #61815
2025-06-02 15:50:46 -04:00
.aspect/rules/external_repository_action_cache build: ensure optimization rule can use compiler-cli from HEAD (#61810) 2025-06-02 09:52:57 -04:00
.devcontainer ci: remove circleci as we no longer rely on it (#58615) 2024-11-12 18:39:25 +00:00
.github build: update cross-repo angular dependencies (#61587) 2025-05-26 10:23:42 +00:00
.husky build: simplify husky setup (#54315) 2024-02-07 16:34:13 +00:00
.ng-dev build: migrate adev shared-docs package to use ts_project (#61193) 2025-05-09 16:30:05 +00:00
.vscode build: add ignore revs file for git blame (#60117) 2025-02-26 16:19:25 -05:00
.yarn build: update yarn to 1.22.22 (#58448) 2024-10-31 19:06:16 +01:00
adev docs: Add Angular 20 migration instructions for changes in resources (#61772) 2025-06-02 12:38:34 -04:00
contributing-docs refactor(platform-browser): replace platform-browser-dynamic with platform-browser (#61498) 2025-05-21 14:01:49 +00:00
devtools fix(devtools): issue where on initial render DevTools would not load properly (#61812) 2025-06-02 12:36:17 -04:00
goldens fix(compiler): move defer trigger assertions out of parser (#61747) 2025-05-30 13:44:58 -04:00
integration build: remove ng_update_migration integration test. (#61825) 2025-06-02 15:45:45 -04:00
modules build: migrate all modules/... code to ts_project (#61779) 2025-05-30 11:14:58 -04:00
packages fix(compiler): recover invalid parenthesized expressions (#61815) 2025-06-02 15:50:46 -04:00
scripts build: add script to diff packages and ensure no unexpected changes (#61275) 2025-05-14 12:01:52 +00:00
third_party refactor(devtools): switch default font to material symbols (#61281) 2025-05-20 08:53:51 +00:00
tools build: rework benchmarks and examples in modules/ to new optimization rule (#61566) 2025-05-29 14:39:11 -04:00
.bazelignore build: rework benchmarks and examples in modules/ to new optimization rule (#61566) 2025-05-29 14:39:11 -04:00
.bazelrc build: enable merging of default shell_env and env in Bazel (#61566) 2025-05-29 14:39:11 -04:00
.bazelversion build: update to bazel 6 (#61087) 2025-05-02 09:12:23 -07:00
.clang-format feat(tooling): Add a .clang-format for automated JavaScript formatting. 2015-04-02 08:44:34 -07:00
.editorconfig build: use https link to editorconfig.org in .editorconfig (#27664) 2018-12-18 09:30:09 -08:00
.git-blame-ignore-revs build: exclude relative imports commits via .git-blame-ignore-revs (#60680) 2025-04-01 20:18:36 +00:00
.gitattributes build: cleanup .gitattributes file and remove outdated CRLF attribute (#46513) 2022-06-28 13:38:27 -07:00
.gitignore build: correct ignore nested node_modules (#58821) 2024-11-22 14:56:23 +00:00
.gitmessage docs: move commit message guidelies to a separate file (#58786) 2025-03-04 19:35:54 +00:00
.mailmap build: add a Git .mailmap with my new name (#19550) 2017-10-09 14:35:30 -07:00
.npmrc build: ensure optimization rule can use compiler-cli from HEAD (#61810) 2025-06-02 09:52:57 -04:00
.nvmrc build: update dependency node to v22.16.0 (#61602) 2025-05-26 09:15:19 +00:00
.pnpmfile.cjs build: ensure optimization rule can use compiler-cli from HEAD (#61810) 2025-06-02 09:52:57 -04:00
.prettierignore build: add .prettierignore configuration file (#61087) 2025-05-02 09:12:23 -07:00
.prettierrc build: Update prettierrc to always use trailing commas (#58266) 2024-11-04 18:14:05 +01:00
.pullapprove.yml refactor: expand DevTools reviewer list (#61709) 2025-05-30 09:56:09 -04:00
.yarnrc build: update yarn to 1.22.22 (#58448) 2024-10-31 19:06:16 +01:00
browser-providers.conf.d.ts build: share Saucelabs browsers between karma test targets using background Saucelabs daemon and custom karma launcher (#49200) 2023-05-15 09:21:46 -07:00
browser-providers.conf.js refactor: update license text to point to angular.dev (#57901) 2024-09-24 15:33:00 +02:00
BUILD.bazel build: setup rules_js and link dependencies (#61087) 2025-05-02 09:12:23 -07:00
CHANGELOG.md docs: link to v20 blog post in changelog (#61734) 2025-05-28 12:28:14 -07:00
CHANGELOG_ARCHIVE.md docs: fix typos 2023-06-22 12:56:49 +02:00
CODE_OF_CONDUCT.md build: update CODE_OF_CONDUCT.md to match the content of angular/.github 2023-03-13 21:07:51 +00:00
CONTRIBUTING.md docs: fix commit message guideline link (#60296) 2025-03-11 11:08:23 -07:00
gulpfile.js refactor: update license text to point to angular.dev (#57901) 2024-09-24 15:33:00 +02:00
karma-js.conf.js ci: remove circleci as we no longer rely on it (#58615) 2024-11-12 18:39:25 +00:00
LICENSE docs: update copyright year (#59359) 2025-01-06 19:58:30 +00:00
package.json refactor(devtools): fixing PR comments and adding unit tests (#59999) 2025-05-30 09:48:12 -04:00
packages.bzl refactor: update license text to point to angular.dev (#57901) 2024-09-24 15:33:00 +02:00
pnpm-lock.yaml build: ensure optimization rule can use compiler-cli from HEAD (#61810) 2025-06-02 09:52:57 -04:00
pnpm-workspace.yaml build: rework benchmarks and examples in modules/ to new optimization rule (#61566) 2025-05-29 14:39:11 -04:00
README.md docs: replace material.a.io with material.a.dev (#61513) 2025-05-20 13:40:42 +00:00
renovate.json Revert "ci: clean untracked files before running postUpgradeTasks (#61494)" (#61529) 2025-05-20 17:42:18 +00:00
SECURITY.md docs: update security guide link to adev (#56469) 2024-06-17 08:54:08 -07:00
tsconfig-tslint.json build: update tslint configuration (#61146) 2025-05-06 13:35:24 -07:00
tslint.json refactor: add explicit types for exports relying on inferred call return type (#61312) 2025-05-13 22:45:18 +00:00
WORKSPACE build: ensure optimization rule can use compiler-cli from HEAD (#61810) 2025-06-02 09:52:57 -04:00
yarn.bzl build: update yarn to 1.22.22 (#58448) 2024-10-31 19:06:16 +01:00
yarn.lock build: lock file maintenance (#61679) 2025-05-26 11:55:36 +00:00

Angular - The modern web developer's platform

angular-logo
Angular is a development platform for building mobile and desktop web applications
using TypeScript/JavaScript and other languages.

angular.dev

Contributing Guidelines · Submit an Issue · Blog

Angular on npm


Documentation

Get started with Angular, learn the fundamentals and explore advanced topics on our documentation website.

Advanced

Local Development

To contribute to the Angular Docs, check out the Angular.dev README

Development Setup

Prerequisites

Setting Up a Project

Install the Angular CLI globally:

npm install -g @angular/cli

Create workspace:

ng new [PROJECT NAME]

Run the application:

cd [PROJECT NAME]
ng serve

Angular is cross-platform, fast, scalable, has incredible tooling, and is loved by millions.

Quickstart

Get started in 5 minutes.

Ecosystem

angular ecosystem logos

Changelog

Learn about the latest improvements.

Upgrading

Check out our upgrade guide to find out the best way to upgrade your project.

Contributing

Contributing Guidelines

Read through our contributing guidelines to learn about our submission process, coding rules, and more.

Want to Help?

Want to report a bug, contribute some code, or improve the documentation? Excellent! Read up on our guidelines for contributing and then check out one of our issues labeled as help wanted or good first issue.

Code of Conduct

Help us keep Angular open and inclusive. Please read and follow our Code of Conduct.

Community

Join the conversation and help the community.

Love Angular badge

Love Angular? Give our repo a star ⬆️.