diff --git a/aio/content/guide/deprecations.md b/aio/content/guide/deprecations.md
index 5fce1324be1..33270229760 100644
--- a/aio/content/guide/deprecations.md
+++ b/aio/content/guide/deprecations.md
@@ -77,6 +77,8 @@ v14 - v17
| `@angular/forms` | [`FormBuilder.group` legacy options parameter](api/forms/FormBuilder#group) | v14 |
| `@angular/platform-server` | [`renderModuleFactory`](#platform-server) | v15 |
| `@angular/router` | [`relativeLinkResolution`](#relativeLinkResolution) | v16 |
+| `@angular/router` | [`resolver` argument in `RouterOutletContract.activateWith`](#router) | v16 |
+| `@angular/router` | [`resolver` field of the `OutletContext` class](#router) | v16 |
| `@angular/service-worker` | [`SwUpdate#activated`](api/service-worker/SwUpdate#activated) | v16 |
| `@angular/service-worker` | [`SwUpdate#available`](api/service-worker/SwUpdate#available) | v16 |
| template syntax | [`/deep/`, `>>>`, and `::ng-deep`](#deep-component-style-selector) | unspecified |
@@ -147,6 +149,16 @@ In the [API reference section](api) of this site, deprecated APIs are indicated
| [`TestBed.get`](api/core/testing/TestBed#get) | [`TestBed.inject`](api/core/testing/TestBed#inject) | v9 | Same behavior, but type safe. |
| [`async`](api/core/testing/async) | [`waitForAsync`](api/core/testing/waitForAsync) | v10 | Same behavior, but rename to avoid confusion. |
+
+
+### @angular/router
+
+| API | Replacement | Deprecation announced | Details |
+|:--- |:--- |:--- |:--- |
+| [`resolver` argument in `RouterOutletContract.activateWith`](api/router/RouterOutletContract#activatewith) | No replacement needed | v14 | Component factories are not required to create an instance of a component dynamically. Passing a factory resolver via `resolver` argument is no longer needed. |
+| [`resolver` field of the `OutletContext` class](api/router/OutletContext#resolver) | No replacement needed | v14 | Component factories are not required to create an instance of a component dynamically. Passing a factory resolver via `resolver` class field is no longer needed. |
+
+
### @angular/platform-browser-dynamic
diff --git a/goldens/public-api/router/index.md b/goldens/public-api/router/index.md
index 9af1ac5f196..c8165535368 100644
--- a/goldens/public-api/router/index.md
+++ b/goldens/public-api/router/index.md
@@ -360,7 +360,7 @@ export class OutletContext {
injector: EnvironmentInjector | null;
// (undocumented)
outlet: RouterOutletContract | null;
- // (undocumented)
+ // @deprecated (undocumented)
resolver: ComponentFactoryResolver | null;
// (undocumented)
route: ActivatedRoute | null;
@@ -684,6 +684,7 @@ export interface RouterOutletContract {
activatedRouteData: Data;
activateEvents?: EventEmitter;
activateWith(activatedRoute: ActivatedRoute, environmnetInjector: EnvironmentInjector | null): void;
+ // @deprecated
activateWith(activatedRoute: ActivatedRoute, resolver: ComponentFactoryResolver | null): void;
attach(ref: ComponentRef, activatedRoute: ActivatedRoute): void;
attachEvents?: EventEmitter;
diff --git a/packages/router/src/directives/router_outlet.ts b/packages/router/src/directives/router_outlet.ts
index f6795c21953..6bf40387b4a 100644
--- a/packages/router/src/directives/router_outlet.ts
+++ b/packages/router/src/directives/router_outlet.ts
@@ -53,6 +53,9 @@ export interface RouterOutletContract {
activateWith(activatedRoute: ActivatedRoute, environmnetInjector: EnvironmentInjector|null): void;
/**
* Called by the `Router` when the outlet should activate (create a component).
+ *
+ * @deprecated Passing a resolver to retrieve a component factory is not required and is
+ * deprecated since v14.
*/
activateWith(activatedRoute: ActivatedRoute, resolver: ComponentFactoryResolver|null): void;
diff --git a/packages/router/src/router_outlet_context.ts b/packages/router/src/router_outlet_context.ts
index 598baeeaa86..7b0792f26f7 100644
--- a/packages/router/src/router_outlet_context.ts
+++ b/packages/router/src/router_outlet_context.ts
@@ -20,6 +20,10 @@ import {ActivatedRoute} from './router_state';
export class OutletContext {
outlet: RouterOutletContract|null = null;
route: ActivatedRoute|null = null;
+ /**
+ * @deprecated Passing a resolver to retrieve a component factory is not required and is
+ * deprecated since v14.
+ */
resolver: ComponentFactoryResolver|null = null;
injector: EnvironmentInjector|null = null;
children = new ChildrenOutletContexts();