Packages

@angular/platform-browser-dynamic

22.2.3 · 14 Oct 2026MIT4.2M / weekRepositoryHomepagenpmAtom feed

Your version

19.0.0

major19 Nov 2024Where it was published

19.2.25 is the newest release of 19.x.

In short

15 breaking

  • breaking

    this.foo property reads no longer refer to template context variables. If you intended to read the template variable, do not use this..

  • breaking

    Angular directives, components and pipes are now standalone by default.

  • breaking

    TypeScript versions less than 5.5 are no longer supported.

  • breaking

    Timing changes for effect API (in developer preview):

  • breaking

    ExperimentalPendingTasks has been renamed to PendingTasks.

  • breaking

    The autoDetect feature of ComponentFixture will now

  • breaking

    createComponent will now render default fallback with empty projectableNodes.

  • breaking

    Errors that are thrown during ApplicationRef.tick

Release note

Explore Angular v19 with a blog post from the Angular team: blog.angular.dev/meet-angular-v19-7b29dfd05b84

Breaking Changes

compiler

  • breaking

    this.foo property reads no longer refer to template context variables. If you intended to read the template variable, do not use this..

core

  • breaking

    Angular directives, components and pipes are now standalone by default.

    • Specify standalone: false for declarations that are currently declared in @NgModules.

    • ng update for v19 will take care of this automatically.

  • breaking

    TypeScript versions less than 5.5 are no longer supported.

  • breaking

    Timing changes for effect API (in developer preview):

    • effects which are triggered outside of change detection run as part of
      the change detection process instead of as a microtask. Depending on the
      specifics of application/test setup, this can result in them executing
      earlier or later (or requiring additional test steps to trigger; see below
      examples).

    • effects which are triggered during change detection (e.g. by input
      signals) run earlier, before the component's template.

  • breaking

    ExperimentalPendingTasks has been renamed to PendingTasks.

  • breaking

    The autoDetect feature of ComponentFixture will now
    attach the fixture to the ApplicationRef. As a result, errors during
    automatic change detection of the fixture be reported to the ErrorHandler.
    This change may cause custom error handlers to observe new failures that were previously unreported.

  • breaking

    createComponent will now render default fallback with empty projectableNodes.

    • When passing an empty array to projectableNodes in the createComponent API, the default fallback content
      of the ng-content will be rendered if present. To prevent rendering the default content, pass document.createTextNode('') as a projectableNode.

    // The first ng-content will render the default fallback content if present
    createComponent(MyComponent. { projectableNodes: [[], [secondNode]] });
    
    // To prevent projecting the default fallback content:
    createComponent(MyComponent. { projectableNodes: [[document.createTextNode('')], [secondNode]] });
    
  • breaking

    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.

  • breaking

    The timers that are used for zone coalescing and hybrid
    mode scheduling (which schedules an application state synchronization
    when changes happen outside the Angular zone) will now run in the zone
    above Angular rather than the root zone. This will mostly affect tests
    which use fakeAsync: these timers will now be visible to fakeAsync
    and can be affected by tick or flush.

  • breaking

    The deprecated factories property in KeyValueDiffers has been removed.

elements

  • breaking

    As part of switching away from custom CD behavior to the
    hybrid scheduler, timing of change detection around custom elements has
    changed subtly. These changes make elements more efficient, but can cause
    tests which encoded assumptions about how or when elements would be checked
    to require updating.

localize

  • breaking

    The name option in the ng add @localize`` schematic has been removed in favor of the project option.

platform-browser

  • breaking

    The deprecated BrowserModule.withServerTransition method has been removed. Please use the APP_ID DI token to set the application id instead.

router

  • breaking

    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.

  • breaking

    The return type of the Resolve interface now includes
    RedirectCommand.

common

CommitDescription
feat - 24c6373820add optional rounded transform support in cloudinary image loader (#55364)
feat - 50f08e6c4bautomatically use sizes auto in NgOptimizedImage (#57479)
feat - 13c13067bcdisable keyvalue sorting using null compareFn (#57487)

compiler

CommitDescription
feat - a2e4ee0cb3add diagnostic for unused standalone imports (#57605)
feat - 0c9d721ac1add support for the typeof keyword in template expressions. (#58183)
fix - 09f589f000this.a should always refer to class property a (#55183)
fix - 98804fd4beadd more specific matcher for hydrate never block (#58360)
fix - b25121ee4aavoid having to duplicate core environment (#58444)
fix - 560282aa9bcontrol flow nodes with root at the end projected incorrectly (#58607)
fix - 2be161d015fix :host parsing in pseudo-selectors (#58681)
fix - 806a61b5a6fix multiline selectors (#58681)
fix - a3cb530d84handle typeof expressions in serializer (#58217)
fix - ba4340875aignore placeholder-only i18n messages (#58154)
fix - e5d3abb298resolve :host:host-context(.foo) (#58681)
fix - 80f56954cetransform chained pseudo-selectors (#58681)

compiler-cli

CommitDescription
feat - d9687f43dd'strictStandalone' flag enforces standalone (#57935)
feat - 9e87593055ensure template style elements are preprocessed as inline styles (#57429)
feat - 231e6ff6cagenerate the HMR replacement module (#58205)
fix - dbe612f2cddisable standalone by default on older versions of Angular (#58405)
fix - d4d76ead80do not fail fatal when references to non-existent module are discovered (#58515)
fix - 33fe252c58do not report unused declarations coming from an imported array (#57940)
fix - fb44323c51incorrectly generating relative file paths on case-insensitive platforms (#58150)
fix - 22cd6869efmake the unused imports diagnostic easier to read (#58468)
fix - 9bbb01c85ereport individual diagnostics for unused imports (#58589)
perf - 4716c3b966reduce duplicate component style resolution (#57502)

core

CommitDescription
feat - 6ea8e1e9aaAdd a schematics to migrate to standalone: false. (#57643)
feat - 3ebe6b4ad4Add async run method on ExperimentalPendingTasks (#56546)
feat - 69fc5ae922Add incremental hydration public api (#58249)
feat - 8ebbae88caAdd rxjs operator prevent app stability until an event (#56533)
feat - 19edf2c057add syntactic sugar for initializers (#53152)
feat - c93b510f9ballow passing undefined without needing to include it in the type argument of input (#57621)
feat - ab25a192baallow running output migration on a subset of paths (#58299)
feat - fc59e2a7b7change effect() execution timing & no-op allowSignalWrites (#57874)
feat - 8bcc663a53drop support for TypeScript 5.4 (#57577)
feat - 18d8d44b1fexperimental resource() API for async dependencies (#58255)
feat - 9762b24b5eexperimental impl of rxResource() (#58255)
feat - 6b8c494d05flipping the default value for standalone to true (#58169)
feat - e6e5d29e83initial version of the output migration (#57604)
feat - be2e49639bintroduce afterRenderEffect (#57549)
feat - ec386e7f12introduce debugName optional arg to framework signal functions (#57073)
feat - 8311f00faaintroduce the reactive linkedSignal (#58189)
feat - 1b1519224dmark input, output and model APIs as stable (#57804)
feat - a7eff3ffaamark signal-based query APIs as stable (#57921)
feat - a1f229850amigrate ExperimentalPendingTasks to PendingTasks (#57533)
feat - 3f1e7ab6aepromote outputFromObservable & outputToObservable to stable. (#58214)
feat - 97c44a1d6cPromote takeUntilDestroyed to stable. (#58200)
feat - e5adf92965stabilize @let syntax (#57813)
feat - b063468027support TypeScript 5.6 (#57424)
feat - 819ff034cetreat directives, pipes, components as by default (#58229)
fix - ee426c62f0allow signal write error (#57973)
fix - c095679f92avoid breaking change with apps using rxjs 6.x (#58341)
fix - 71ee81af2cclean up event contract once hydration is done (#58174)
fix - f03d274e87ComponentFixture autoDetect feature works like production (#55228)
fix - 950a5540f1Ensure the ViewContext is retained after closure minification (#57903)
fix - 7b1e5be20bfallback to default ng-content with empty projectable nodes. (#57480)
fix - 0300dd2e18Fix fixture.detectChanges with autoDetect disabled and zoneless (#57416)
fix - 5fe57d4fbbfixes issues with control flow and incremental hydration (#58644)
fix - 51933ef5a6prevent errors on contract cleanup (#58614)
fix - fd7716440bPrevents trying to trigger incremental hydration on CSR (#58366)
fix - 656b5d3e78Re-assign error codes to be within core bounds (<1000) (#53455)
fix - 6e0af6dbbbresolve forward-referenced host directives during directive matching (#58492)
fix - 468d3fb9b1rethrow errors during ApplicationRef.tick in TestBed (#57200)
fix - 226a67dabbSchedulers run in zone above Angular rather than root (#57553)
perf - 97fb86d331set encapsulation to None for empty component styles (#57130)
refactor - c15ec36bd1remove deprecated factories Property in KeyValueDiffers (#58064)

elements

CommitDescription
fix - fe5c4e086asupport output()-shaped outputs (#57535)
fix - 0cebfd7462switch to ComponentRef.setInput & remove custom scheduler (#56728)

forms

CommitDescription
feat - 3e7d724037add ability to clear a FormRecord (#50750)
fix - 18b6f3339ffix FormRecord type inference (#50750)

http

CommitDescription
feat - 4b9accdf16promote withRequestsMadeViaParent to stable. (#58221)
fix - 057cf7fb6bpreserve all headers from Headers object (#57802)

language-service

CommitDescription
feat - 8da9fb49b5add code fix for unused standalone imports (#57605)
feat - 1f067f4507add code reactoring action to migrate @Input to signal-input (#57214)
feat - 56ee47f2ecallow code refactorings to compute edits asynchronously (#57214)
feat - bc83fc1e2esupport converting to signal queries in VSCode extension (#58106)
feat - 5c4305f024support migrating full classes to signal inputs in VSCode (#57975)
feat - 6342befff8support migrating full classes to signal queries (#58263)
fix - 7ecfd89592The suppress diagnostics option should work for external templates (#57873)

localize

CommitDescription
refactor - 9c3bd1b5d1remove deprecated name option. (#58063)

migrations

CommitDescription
feat - dff4de0f75add a combined migration for all signals APIs (#58259)
feat - b6bc93803cadd schematic to migrate to signal queries (#58032)
feat - bb286f65e7capture output migration stats (#58321)
feat - 2bfc64daf1expose output as function migration (#58299)
feat - 59fe9bc772introduce signal input migration as ng generate schematic (#57805)
feat - cbec46a51dmigrate .pipe calls in outputs used in tests (#57691)
feat - cf70d626cdprint output migration stats in ng generate (#58321)
feat - 68e5370a66remove complete calls for migrated outputs (#57671)
feat - 9da21f798dreplace .next usage on outputs (#57654)
fix - 42607bf0f2add outputs migration to combined shorthand (#58318)
fix - 71f5ef2aa5change imports to be G3 compatible (#57654)
fix - e6514b9f3ddo not migrate next calls in template if not an EventEmitter (#58631)
fix - c5e676bb87flip the default standalone flag in route-lazy-loading migration (#58474)
fix - b84ed2b628include the output migration in the defaults of the signal migration (#58635)
fix - 90c7ec39a0inject migration always inserting generated variables before super call (#58393)
fix - 7a65cdd911inject migration not inserting generated code after super call in some cases (#58393)
fix - 00e2001351migrate more .next output usages (#58282)
fix - e85ac5c7cbproperly bundle shared compiler code into migrations (#58515)
fix - 3a264db866properly handle comments in output migration (#57691)
fix - 616b411a6dproperly migrate output aliases (#58411)
fix - d504452e2fproperly replace imports across files (#58414)
fix - c1aa411cf1properly resolve tsconfig paths on windows (#58137)
fix - e26797b38ereplace removed NgModules in tests with their exports (#58627)

platform-browser

CommitDescription
fix - c36a1c023bcorrectly add external stylesheets to ShadowDOM components (#58482)
refactor - 5c61f46409remove deprecated BrowserModule.withServerTransition method (#58062)

platform-server

CommitDescription
fix - 9e82559de4destroy PlatformRef when error happens during the bootstrap() phase (#58112)

router

CommitDescription
feat - f271021e19Add routerOutletData input to RouterOutlet directive (#57051)
fix - b2790813a6Align RouterModule.forRoot errorHandler with provider error handler (#57050)
fix - a49c35ec76remove setter for injector on OutletContext (#58343)
fix - 7436d3180eUpdate Resolve interface to include RedirectCommand like ResolveFn (#57309)

service-worker

CommitDescription
feat - 8ddce80a0ballow specifying maxAge for entire application (#49601)
feat - 1479af978cfinish implementation of refreshAhead feature (#53356)