Upgrading @angular/core 15 to 16
Unknown15.2.10 → 16.2.12
Fetching 54 releases from GitHub…0 / 54
UnknownUpgrade verdict
DepDelta is still reading the notes for this range, so breaking changes can't be ruled out yet.
In plain terms
- DepDelta is still reading the release notes in this range, so it can't rule out breaking changes yet.
- This page updates as the notes come in.
Must act Still reading release notes
DepDelta is still reading the release notes in this range. This updates as they come in.
Node.js requirement changed in 16.0.0-rc.0: ^14.20.0 || ^16.13.0 || >=18.10.0 → ^16.14.0 || >=18.10.0.
API changes
Generated by DepDelta from published .d.ts files. Not mixed with prose notes.
- removed:
abstract class ReflectiveInjector implements Injector - removed:
abstract get ReflectiveInjector.parent(): Injector | null - removed:
abstract method ReflectiveInjector.createChildFromResolved(providers: ResolvedReflectiveProvider[]): ReflectiveInjector - removed:
abstract method ReflectiveInjector.get(token: any, notFoundValue?: any): any - removed:
abstract method ReflectiveInjector.instantiateResolved(provider: ResolvedReflectiveProvider): any - removed:
abstract method ReflectiveInjector.resolveAndCreateChild(providers: Provider[]): ReflectiveInjector - removed:
abstract method ReflectiveInjector.resolveAndInstantiate(provider: Provider): any - removed:
class ReflectiveKey - removed:
class ResolvedReflectiveFactory - removed:
const ANALYZE_FOR_ENTRY_COMPONENTS: InjectionToken<any> - removed:
const ɵAPP_ID_RANDOM_PROVIDER: { provide: InjectionToken<string>; useFactory: typeof _appIdRandomProviderFactory; deps: any[] } - removed:
const ɵisObservable: (obj: any | Observable<any>) => obj is Observable<any> - removed:
constructor ReflectiveKey(token: Object, id: number) - removed:
constructor ResolvedReflectiveFactory(factory: Function, dependencies: ReflectiveDependency[]) - removed:
function ɵcoerceToBoolean(value: unknown): boolean - removed:
function ɵgetDebugNodeR2(_nativeNode: any): DebugNode | null - removed:
function ɵmakeDecorator<T>(name: string, props?: (...args: any[]) => any, parentClass?: any, additionalProcessing?: (type: Type<T>) => void, typeFn?: (type: Type<T>, ...args: any[]) => void): { new (...args: any[]): any; (...args: any[]): any; (...args: any[]): (cls: any) => any } - removed:
interface ResolvedReflectiveProvider - removed:
property Component.entryComponents?: Array<Type<any> | any[]> - removed:
property Input.bindingPropertyName?: string - removed:
property IterableDiffers.factories: IterableDifferFactory[] - removed:
property NgModule.entryComponents?: Array<Type<any> | any[]> - removed:
property Output.bindingPropertyName?: string - removed:
property ReflectiveKey.id: number - removed:
property ReflectiveKey.token: Object - removed:
property ResolvedReflectiveFactory.dependencies: ReflectiveDependency[] - removed:
property ResolvedReflectiveFactory.factory: Function - removed:
property ResolvedReflectiveProvider.key: ReflectiveKey - removed:
property ResolvedReflectiveProvider.multiProvider: boolean - removed:
property ResolvedReflectiveProvider.resolvedFactories: ResolvedReflectiveFactory[] - removed:
readonly property ReflectiveKey.displayName: string - removed:
static get ReflectiveKey.numberOfKeys(): number - removed:
static method ReflectiveInjector.fromResolvedProviders(providers: ResolvedReflectiveProvider[], parent?: Injector): ReflectiveInjector - removed:
static method ReflectiveInjector.resolve(providers: Provider[]): ResolvedReflectiveProvider[] - removed:
static method ReflectiveInjector.resolveAndCreate(providers: Provider[], parent?: Injector): ReflectiveInjector - removed:
static method ReflectiveKey.get(token: Object): ReflectiveKey - changed:
abstract get ComponentFactory.inputs(): { propName: string; templateName: string }[] → abstract get ComponentFactory.inputs(): { propName: string; templateName: string; transform?: (value: any) => any }[] - changed:
abstract get ɵComponentFactory.inputs(): { propName: string; templateName: string }[] → abstract get ɵComponentFactory.inputs(): { propName: string; templateName: string; transform?: (value: any) => any }[] - changed:
abstract method ViewRef.onDestroy(callback: Function): any → abstract method ViewRef.onDestroy(callback: Function): void - changed:
call InputDecorator(bindingPropertyName?: string): any → call InputDecorator(arg?: string | Input): any - changed:
call OutputDecorator(bindingPropertyName?: string): any → call OutputDecorator(alias?: string): any - changed:
constructor ApplicationInitStatus(appInits: ReadonlyArray<() => Observable<unknown> | Promise<unknown> | void>) → constructor ApplicationInitStatus() - changed:
constructor ɵRender3NgModuleRef(ngModuleType: Type<T>, _parent: Injector | null) → constructor ɵRender3NgModuleRef(ngModuleType: Type<T>, _parent: Injector | null, additionalProviders: StaticProvider[]) - changed:
function ɵcreateInjector(defType: any, parent?: Injector | null, additionalProviders?: StaticProvider[] | null, name?: string): Injector → function ɵcreateInjector(defType: any, parent?: Injector | null, additionalProviders?: Array<Provider | StaticProvider> | null, name?: string): Injector - changed:
function ɵisSubscribable(obj: any | Subscribable<any>): obj is Subscribable<any> → function ɵisSubscribable<T>(obj: any | Subscribable<T>): obj is Subscribable<T> - changed:
function ɵɵsetNgModuleScope(type: any, scope: { declarations?: Type<any>[] | (() => Type<any>[]); imports?: Type<any>[] | (() => Type<any>[]); exports?: Type<any>[] | (() => Type<any>[]) }): unknown → function ɵɵsetNgModuleScope(type: any, scope: NgModuleScopeInfoFromDecorator): unknown - changed:
get ComponentMirror.inputs(): ReadonlyArray<{ readonly propName: string; readonly templateName: string }> → get ComponentMirror.inputs(): ReadonlyArray<{ readonly propName: string; readonly templateName: string; readonly transform?: (value: any) => any }> - changed:
get ɵRender3ComponentFactory.inputs(): { propName: string; templateName: string }[] → get ɵRender3ComponentFactory.inputs(): { propName: string; templateName: string; transform?: (value: any) => any }[] - changed:
method QueryList.filter(fn: (item: T, index: number, array: T[]) => boolean): T[] → method QueryList.filter(predicate: (value: T, index: number, array: readonly T[]) => unknown): T[] - changed:
new InputDecorator(bindingPropertyName?: string): any → new InputDecorator(arg?: string | Input): any - changed:
new OutputDecorator(bindingPropertyName?: string): any → new OutputDecorator(alias?: string): any - changed:
property Directive.inputs?: string[] → property Directive.inputs?: ({ name: string; alias?: string; required?: boolean; transform?: (value: any) => any } | string)[] - changed:
property RendererType2.styles: (string | any[])[] → property RendererType2.styles: string[] - changed:
readonly property ɵNoopNgZone.hasPendingMacrotasks: boolean → readonly property ɵNoopNgZone.hasPendingMacrotasks = false - changed:
readonly property ɵNoopNgZone.hasPendingMicrotasks: boolean → readonly property ɵNoopNgZone.hasPendingMicrotasks = false - changed:
readonly property ɵNoopNgZone.isStable: boolean → readonly property ɵNoopNgZone.isStable = true - changed:
static method Injector.create(options: { providers: StaticProvider[]; parent?: Injector; name?: string }): Injector → static method Injector.create(options: { providers: Array<Provider | StaticProvider>; parent?: Injector; name?: string }): Injector - changed:
static property ApplicationInitStatus.ɵfac: i0.ɵɵFactoryDeclaration<ApplicationInitStatus, [{ optional: true }]> → static property ApplicationInitStatus.ɵfac: i0.ɵɵFactoryDeclaration<ApplicationInitStatus, never> - changed:
type ɵɵComponentDeclaration<T, Selector extends String, ExportAs extends string[], InputMap extends { [key: string]: string }, OutputMap extends { [key: string]: string }, QueryFields extends string[], NgContentSelectors extends string[], IsStandalone extends boolean = false, HostDirectives = never> = unknown → type ɵɵComponentDeclaration<T, Selector extends String, ExportAs extends string[], InputMap extends { [key: string]: string | { alias: string | null; required: boolean } }, OutputMap extends { [key: string]: string }, QueryFields extends string[], NgContentSelectors extends string[], IsStandalone extends boolean = false, HostDirectives = never, IsSignal extends boolean = false> = unknown - changed:
type ɵɵDirectiveDeclaration<T, Selector extends string, ExportAs extends string[], InputMap extends { [key: string]: string }, OutputMap extends { [key: string]: string }, QueryFields extends string[], NgContentSelectors extends never = never, IsStandalone extends boolean = false, HostDirectives = never> = unknown → type ɵɵDirectiveDeclaration<T, Selector extends string, ExportAs extends string[], InputMap extends { [key: string]: string | { alias: string | null; required: boolean } }, OutputMap extends { [key: string]: string }, QueryFields extends string[], NgContentSelectors extends never = never, IsStandalone extends boolean = false, HostDirectives = never, IsSignal extends boolean = false> = unknown - added:
abstract class DestroyRef - added:
abstract method DestroyRef.onDestroy(callback: () => void): () => void - added:
call TypeDecorator(target: unknown, context: unknown): void - added:
class TransferState - added:
class ɵAfterRenderEventManager - added:
class ɵInitialRenderPendingTasks implements OnDestroy - added:
const CSP_NONCE: InjectionToken<string | null> - added:
const ɵENABLED_SSR_FEATURES: InjectionToken<Set<string>> - added:
const ɵIS_HYDRATION_DOM_REUSE_ENABLED: InjectionToken<boolean> - added:
const ɵSSR_CONTENT_INTEGRITY_MARKER = 'nghm' - added:
function afterNextRender(callback: VoidFunction, options?: AfterRenderOptions): AfterRenderRef - added:
function afterRender(callback: VoidFunction, options?: AfterRenderOptions): AfterRenderRef - added:
function assertInInjectionContext(debugFn: Function): void - added:
function booleanAttribute(value: unknown): boolean - added:
function computed<T>(computation: () => T, options?: CreateComputedOptions<T>): Signal<T> - added:
function effect(effectFn: (onCleanup: EffectCleanupRegisterFn) => void, options?: CreateEffectOptions): EffectRef - added:
function isSignal(value: unknown): value is Signal<unknown> - added:
function makeStateKey<T = void>(key: string): StateKey<T> - added:
function mergeApplicationConfig(...configs: ApplicationConfig[]): ApplicationConfig - added:
function numberAttribute(value: unknown, fallbackValue?: number): number - added:
function provideZoneChangeDetection(options?: NgZoneOptions): EnvironmentProviders - added:
function runInInjectionContext<ReturnT>(injector: Injector, fn: () => ReturnT): ReturnT - added:
function signal<T>(initialValue: T, options?: CreateSignalOptions<T>): WritableSignal<T> - added:
function untracked<T>(nonReactiveReadsFn: () => T): T - added:
function ɵannotateForHydration(appRef: ApplicationRef, doc: Document): void - added:
function ɵsetAlternateWeakRefImpl(impl: unknown): void - added:
function ɵsetInjectorProfilerContext(context: ɵInjectorProfilerContext): ɵInjectorProfilerContext - added:
function ɵwithDomHydration(): EnvironmentProviders - added:
function ɵɵInputTransformsFeature(definition: ɵDirectiveDef<unknown>): void - added:
function ɵɵdefer(index: number, deferredDepsFn: DeferredDepsFn | null): void - added:
get TransferState.isEmpty(): boolean - added:
interface AfterRenderOptions - added:
interface AfterRenderRef - added:
interface ApplicationConfig - added:
interface CreateComputedOptions<T> - added:
interface CreateEffectOptions - added:
interface CreateSignalOptions<T> - added:
interface EffectRef - added:
interface NgZoneOptions - added:
interface WritableSignal<T> extends Signal<T> - added:
interface ɵInjectorProfilerContext - added:
method AfterRenderRef.destroy(): void - added:
method ApplicationRef.onDestroy(callback: () => void): VoidFunction - added:
method EffectRef.destroy(): void - added:
method QueryList.filter<S extends T>(predicate: (value: T, index: number, array: readonly T[]) => value is S): S[] - added:
method TransferState.get<T>(key: StateKey<T>, defaultValue: T): T - added:
method TransferState.hasKey<T>(key: StateKey<T>): boolean - added:
method TransferState.onSerialize<T>(key: StateKey<T>, callback: () => T): void - added:
method TransferState.remove<T>(key: StateKey<T>): void - added:
method TransferState.set<T>(key: StateKey<T>, value: T): void - added:
method TransferState.toJson(): string - added:
method WritableSignal.asReadonly(): Signal<T> - added:
method WritableSignal.mutate(mutatorFn: (value: T) => void): void - added:
method WritableSignal.set(value: T): void - added:
method WritableSignal.update(updateFn: (value: T) => T): void - added:
method ɵAfterRenderEventManager.begin(): void - added:
method ɵAfterRenderEventManager.end(): void - added:
method ɵAfterRenderEventManager.ngOnDestroy(): void - added:
method ɵInitialRenderPendingTasks.add(): number - added:
method ɵInitialRenderPendingTasks.ngOnDestroy(): void - added:
method ɵInitialRenderPendingTasks.remove(taskId: number): void - added:
property AfterRenderOptions.injector?: Injector - added:
property ApplicationConfig.providers: Array<Provider | EnvironmentProviders> - added:
property CreateComputedOptions.equal?: ValueEqualityFn<T> - added:
property CreateEffectOptions.allowSignalWrites?: boolean - added:
property CreateEffectOptions.injector?: Injector - added:
property CreateEffectOptions.manualCleanup?: boolean - added:
property CreateSignalOptions.equal?: ValueEqualityFn<T> - added:
property Input.alias?: string - added:
property Input.required?: boolean - added:
property Input.transform?: (value: any) => any - added:
property NgZoneOptions.eventCoalescing?: boolean - added:
property NgZoneOptions.runCoalescing?: boolean - added:
property Output.alias?: string - added:
property ɵInitialRenderPendingTasks.hasPendingTasks: BehaviorSubject<boolean> - added:
property ɵInjectorProfilerContext.injector: Injector - added:
property ɵInjectorProfilerContext.token: Type<unknown> | null - added:
readonly property ɵComponentDef.signals: boolean - added:
readonly property ɵDirectiveDef.inputConfig: { [classPropertyName: string]: string | [string, string, InputTransformFunction?] } - added:
readonly property ɵDirectiveDef.inputTransforms: { [classPropertyName: string]: InputTransformFunction } | null - added:
readonly property ɵDirectiveDef.signals: boolean - added:
static property TransferState.ɵprov: unknown - added:
static property ɵAfterRenderEventManager.ɵprov: unknown - added:
static property ɵInitialRenderPendingTasks.ɵfac: i0.ɵɵFactoryDeclaration<ɵInitialRenderPendingTasks, never> - added:
static property ɵInitialRenderPendingTasks.ɵprov: i0.ɵɵInjectableDeclaration<ɵInitialRenderPendingTasks> - added:
type EffectCleanupFn = () => void - added:
type Signal<T> = (() => T) & { [SIGNAL]: unknown } - added:
type StateKey<T> = string & { __not_a_string: never; __value_type?: T } - added:
type ValueEqualityFn<T> = (a: T, b: T) => boolean
- added:
function takeUntilDestroyed<T>(destroyRef?: DestroyRef): MonoTypeOperatorFunction<T> - added:
function toObservable<T>(source: Signal<T>, options?: ToObservableOptions): Observable<T> - added:
function toSignal<T, U extends T | null | undefined>(source: Observable<T> | Subscribable<T>, options: ToSignalOptions<U> & { initialValue: U; requireSync?: false }): Signal<T | U> - added:
function toSignal<T>(source: Observable<T> | Subscribable<T>): Signal<T | undefined> - added:
function toSignal<T>(source: Observable<T> | Subscribable<T>, options: ToSignalOptions<undefined> & { requireSync: true }): Signal<T> - added:
function toSignal<T>(source: Observable<T> | Subscribable<T>, options?: ToSignalOptions<undefined> & { requireSync?: false }): Signal<T | undefined> - added:
interface ToObservableOptions - added:
interface ToSignalOptions<T> - added:
property ToObservableOptions.injector?: Injector - added:
property ToSignalOptions.initialValue?: T - added:
property ToSignalOptions.injector?: Injector - added:
property ToSignalOptions.manualCleanup?: boolean - added:
property ToSignalOptions.requireSync?: boolean
- changed:
const ComponentFixtureAutoDetect: InjectionToken<boolean[]> → const ComponentFixtureAutoDetect: InjectionToken<boolean> - changed:
const ComponentFixtureNoNgZone: InjectionToken<boolean[]> → const ComponentFixtureNoNgZone: InjectionToken<boolean>