From ee747f7d0cf99c15c9c59187f9253331b13c85b6 Mon Sep 17 00:00:00 2001 From: Dzmitry Shylovich Date: Fri, 24 Feb 2017 05:04:51 +0300 Subject: [PATCH] refactor(core): change abstract classes for interfaces (#12324) BREAKING CHANGE: Because all lifecycle hooks are now interfaces the code that uses 'extends' keyword will no longer compile. To migrate the code follow the example below: Before: ``` @Component() class SomeComponent extends OnInit {} ``` After: ``` @Component() class SomeComponent implements OnInit {} ``` we don't expect anyone to be affected by this change. Closes #10083 --- .../core/src/metadata/lifecycle_hooks.ts | 16 +++++----- tools/public_api_guard/core/typings/core.d.ts | 32 +++++++++---------- 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/modules/@angular/core/src/metadata/lifecycle_hooks.ts b/modules/@angular/core/src/metadata/lifecycle_hooks.ts index 4ec2b8c37f..1b1d51c30d 100644 --- a/modules/@angular/core/src/metadata/lifecycle_hooks.ts +++ b/modules/@angular/core/src/metadata/lifecycle_hooks.ts @@ -49,7 +49,7 @@ export const LIFECYCLE_HOOKS_VALUES = [ * * @stable */ -export abstract class OnChanges { abstract ngOnChanges(changes: SimpleChanges): void; } +export interface OnChanges { ngOnChanges(changes: SimpleChanges): void; } /** * @whatItDoes Lifecycle hook that is called after data-bound properties of a directive are @@ -66,7 +66,7 @@ export abstract class OnChanges { abstract ngOnChanges(changes: SimpleChanges): * * @stable */ -export abstract class OnInit { abstract ngOnInit(): void; } +export interface OnInit { ngOnInit(): void; } /** * @whatItDoes Lifecycle hook that is called when Angular dirty checks a directive. @@ -89,7 +89,7 @@ export abstract class OnInit { abstract ngOnInit(): void; } * * @stable */ -export abstract class DoCheck { abstract ngDoCheck(): void; } +export interface DoCheck { ngDoCheck(): void; } /** * @whatItDoes Lifecycle hook that is called when a directive, pipe or service is destroyed. @@ -104,7 +104,7 @@ export abstract class DoCheck { abstract ngDoCheck(): void; } * * @stable */ -export abstract class OnDestroy { abstract ngOnDestroy(): void; } +export interface OnDestroy { ngOnDestroy(): void; } /** * @@ -118,7 +118,7 @@ export abstract class OnDestroy { abstract ngOnDestroy(): void; } * * @stable */ -export abstract class AfterContentInit { abstract ngAfterContentInit(): void; } +export interface AfterContentInit { ngAfterContentInit(): void; } /** * @whatItDoes Lifecycle hook that is called after every check of a directive's content. @@ -130,7 +130,7 @@ export abstract class AfterContentInit { abstract ngAfterContentInit(): void; } * * @stable */ -export abstract class AfterContentChecked { abstract ngAfterContentChecked(): void; } +export interface AfterContentChecked { ngAfterContentChecked(): void; } /** * @whatItDoes Lifecycle hook that is called after a component's view has been fully @@ -143,7 +143,7 @@ export abstract class AfterContentChecked { abstract ngAfterContentChecked(): vo * * @stable */ -export abstract class AfterViewInit { abstract ngAfterViewInit(): void; } +export interface AfterViewInit { ngAfterViewInit(): void; } /** * @whatItDoes Lifecycle hook that is called after every check of a component's view. @@ -155,4 +155,4 @@ export abstract class AfterViewInit { abstract ngAfterViewInit(): void; } * * @stable */ -export abstract class AfterViewChecked { abstract ngAfterViewChecked(): void; } +export interface AfterViewChecked { ngAfterViewChecked(): void; } diff --git a/tools/public_api_guard/core/typings/core.d.ts b/tools/public_api_guard/core/typings/core.d.ts index d84db12776..0aff9d25be 100644 --- a/tools/public_api_guard/core/typings/core.d.ts +++ b/tools/public_api_guard/core/typings/core.d.ts @@ -1,21 +1,21 @@ /** @stable */ -export declare abstract class AfterContentChecked { - abstract ngAfterContentChecked(): void; +export interface AfterContentChecked { + ngAfterContentChecked(): void; } /** @stable */ -export declare abstract class AfterContentInit { - abstract ngAfterContentInit(): void; +export interface AfterContentInit { + ngAfterContentInit(): void; } /** @stable */ -export declare abstract class AfterViewChecked { - abstract ngAfterViewChecked(): void; +export interface AfterViewChecked { + ngAfterViewChecked(): void; } /** @stable */ -export declare abstract class AfterViewInit { - abstract ngAfterViewInit(): void; +export interface AfterViewInit { + ngAfterViewInit(): void; } /** @experimental */ @@ -385,8 +385,8 @@ export interface DirectiveDecorator { } /** @stable */ -export declare abstract class DoCheck { - abstract ngDoCheck(): void; +export interface DoCheck { + ngDoCheck(): void; } /** @stable */ @@ -678,18 +678,18 @@ export declare class NgZone { export declare const NO_ERRORS_SCHEMA: SchemaMetadata; /** @stable */ -export declare abstract class OnChanges { - abstract ngOnChanges(changes: SimpleChanges): void; +export interface OnChanges { + ngOnChanges(changes: SimpleChanges): void; } /** @stable */ -export declare abstract class OnDestroy { - abstract ngOnDestroy(): void; +export interface OnDestroy { + ngOnDestroy(): void; } /** @stable */ -export declare abstract class OnInit { - abstract ngOnInit(): void; +export interface OnInit { + ngOnInit(): void; } /** @deprecated */